Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2012-05-22 13:05:29 +0000
committerGreg Wilkins2012-05-22 13:05:29 +0000
commitca2a040a39216b04f0937360068392c833f6e41a (patch)
treecb57f03700c0e8e9fcb742a537a64bc0a24a81fd
parentd436400db177763fb84267e7ba92eb19d6b7d629 (diff)
downloadorg.eclipse.jetty.project-ca2a040a39216b04f0937360068392c833f6e41a.tar.gz
org.eclipse.jetty.project-ca2a040a39216b04f0937360068392c833f6e41a.tar.xz
org.eclipse.jetty.project-ca2a040a39216b04f0937360068392c833f6e41a.zip
380034 last modified times taken from JarEntry for JarFile resources
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java4
-rw-r--r--jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java11
2 files changed, 15 insertions, 0 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
index 785f360aae..95cfaabbf9 100644
--- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
+++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
@@ -228,7 +228,11 @@ class JarFileResource extends JarResource
public long lastModified()
{
if (checkConnection() && _file!=null)
+ {
+ if (exists() && _entry!=null)
+ return _entry.getTime();
return _file.lastModified();
+ }
return -1;
}
diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java
index aa5c14815a..571e51a7e5 100644
--- a/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java
+++ b/jetty-util/src/test/java/org/eclipse/jetty/util/resource/ResourceTest.java
@@ -25,6 +25,7 @@ import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@@ -312,6 +313,16 @@ public class ResourceTest
/* ------------------------------------------------------------ */
@Test
+ public void testJarFileLastModified ()
+ throws Exception
+ {
+ String s = "jar:"+__userURL+"TestData/test.zip!/subdir/numbers";
+ Resource r = Resource.newResource(s);
+ assertEquals(971425252000L,r.lastModified()); // Known date value inside zip
+ }
+
+ /* ------------------------------------------------------------ */
+ @Test
public void testJarFileCopyToDirectoryTraversal () throws Exception
{
String s = "jar:"+__userURL+"TestData/extract.zip!/";

Back to the top