Make JarURLConnection return entry's last modified time
See gh-9893
This commit is contained in:
parent
5c13b8bf50
commit
7c7259beec
|
|
@ -36,6 +36,7 @@ import org.springframework.boot.loader.data.RandomAccessData.ResourceAccess;
|
|||
*
|
||||
* @author Phillip Webb
|
||||
* @author Andy Wilkinson
|
||||
* @author Rostyslav Dudka
|
||||
*/
|
||||
final class JarURLConnection extends java.net.JarURLConnection {
|
||||
|
||||
|
|
@ -234,6 +235,21 @@ final class JarURLConnection extends java.net.JarURLConnection {
|
|||
return this.permission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getLastModified() {
|
||||
int defaultTime = 0;
|
||||
if (this.jarFile == null || this.jarEntryName.isEmpty()) {
|
||||
return defaultTime;
|
||||
}
|
||||
try {
|
||||
JarEntry entry = getJarEntry();
|
||||
return (entry == null ? defaultTime : entry.getTime());
|
||||
}
|
||||
catch (IOException ex) {
|
||||
return defaultTime;
|
||||
}
|
||||
}
|
||||
|
||||
static void setUseFastExceptions(boolean useFastExceptions) {
|
||||
JarURLConnection.useFastExceptions.set(useFastExceptions);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Phillip Webb
|
||||
* @author Rostyslav Dudka
|
||||
*/
|
||||
public class JarURLConnectionTests {
|
||||
|
||||
|
|
@ -150,6 +151,14 @@ public class JarURLConnectionTests {
|
|||
assertThat(url.openConnection().getContentLengthLong()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLastModifiedReturnsLastModifiedTimeOfJarEntry() throws Exception {
|
||||
URL url = new URL("jar:file:" + getAbsolutePath() + "!/1.dat");
|
||||
JarURLConnection connection = JarURLConnection.get(url, this.jarFile);
|
||||
assertThat(connection.getLastModified())
|
||||
.isEqualTo(connection.getJarEntry().getTime());
|
||||
}
|
||||
|
||||
private String getAbsolutePath() {
|
||||
return this.rootJarFile.getAbsolutePath().replace('\\', '/');
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue