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 720808c123..d8ad9905e6 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 @@ -70,7 +70,7 @@ class JarURLConnection extends java.net.JarURLConnection { private final JarFile jarFile; - private final Permission permission; + private Permission permission; private JarEntryData jarEntryData; @@ -91,8 +91,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 getNormalizedFile(URL url) { @@ -225,6 +223,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; }