Commit 33a81e87 authored by hengyunabc's avatar hengyunabc Committed by Andy Wilkinson

Avoid null handler package in JarFile protocol handler registration

Closes gh-6759
parent 63b8e82c
...@@ -449,7 +449,7 @@ public class JarFile extends java.util.jar.JarFile implements Iterable<JarEntryD ...@@ -449,7 +449,7 @@ public class JarFile extends java.util.jar.JarFile implements Iterable<JarEntryD
* {@link URLStreamHandler} will be located to deal with jar URLs. * {@link URLStreamHandler} will be located to deal with jar URLs.
*/ */
public static void registerUrlProtocolHandler() { public static void registerUrlProtocolHandler() {
String handlers = System.getProperty(PROTOCOL_HANDLER); String handlers = System.getProperty(PROTOCOL_HANDLER, "");
System.setProperty(PROTOCOL_HANDLER, ("".equals(handlers) ? HANDLERS_PACKAGE System.setProperty(PROTOCOL_HANDLER, ("".equals(handlers) ? HANDLERS_PACKAGE
: handlers + "|" + HANDLERS_PACKAGE)); : handlers + "|" + HANDLERS_PACKAGE));
resetCachedUrlHandlers(); resetCachedUrlHandlers();
......
...@@ -43,10 +43,12 @@ import org.springframework.boot.loader.util.AsciiBytes; ...@@ -43,10 +43,12 @@ import org.springframework.boot.loader.util.AsciiBytes;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
import org.springframework.util.StreamUtils; import org.springframework.util.StreamUtils;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.Matchers.sameInstance; import static org.hamcrest.Matchers.sameInstance;
...@@ -63,6 +65,9 @@ import static org.mockito.Mockito.verify; ...@@ -63,6 +65,9 @@ import static org.mockito.Mockito.verify;
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
public class JarFileTests { public class JarFileTests {
private static final String PROTOCOL_HANDLER = "java.protocol.handler.pkgs";
private static final String HANDLERS_PACKAGE = "org.springframework.boot.loader";
@Rule @Rule
public ExpectedException thrown = ExpectedException.none(); public ExpectedException thrown = ExpectedException.none();
...@@ -453,4 +458,11 @@ public class JarFileTests { ...@@ -453,4 +458,11 @@ public class JarFileTests {
url.openConnection().getInputStream(); url.openConnection().getInputStream();
} }
@Test
public void registerUrlProtocolHandler() {
JarFile.registerUrlProtocolHandler();
String protocolHandler = System.getProperty(PROTOCOL_HANDLER);
assertThat(protocolHandler, containsString(HANDLERS_PACKAGE));
assertThat(protocolHandler, not(containsString("null")));
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment