diff --git a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/JarURLConnection.java b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/JarURLConnection.java index d0ee8e2b29..2a70231623 100644 --- a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/JarURLConnection.java +++ b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/JarURLConnection.java @@ -82,7 +82,7 @@ class JarURLConnection extends java.net.JarURLConnection { private final JarFile jarFile; - private final Permission permission; + private Permission permission; private URL jarFileUrl; @@ -103,8 +103,6 @@ class JarURLConnection extends java.net.JarURLConnection { } this.jarFile = jarFile; this.jarEntryName = getJarEntryName(spec); - this.permission = new FilePermission(jarFile.getRootJarFile().getFile().getPath(), - READ_ACTION); } private String getNormalizedFileUrl(URL url) { @@ -243,6 +241,10 @@ class JarURLConnection extends java.net.JarURLConnection { @Override public Permission getPermission() throws IOException { + if (this.permission == null) { + this.permission = new FilePermission( + this.jarFile.getRootJarFile().getFile().getPath(), READ_ACTION); + } return this.permission; }