Commit 7841af50 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '1.3.x'

parents 2a22a7af 20df899b
...@@ -376,7 +376,7 @@ public class JarFile extends java.util.jar.JarFile { ...@@ -376,7 +376,7 @@ public class JarFile extends java.util.jar.JarFile {
* {@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();
......
...@@ -54,6 +54,9 @@ import static org.mockito.Mockito.verify; ...@@ -54,6 +54,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();
...@@ -420,4 +423,42 @@ public class JarFileTests { ...@@ -420,4 +423,42 @@ public class JarFileTests {
url.openConnection().getInputStream(); url.openConnection().getInputStream();
} }
@Test
public void registerUrlProtocolHandlerWithNoExistingRegistration() {
String original = System.getProperty(PROTOCOL_HANDLER);
try {
System.clearProperty(PROTOCOL_HANDLER);
JarFile.registerUrlProtocolHandler();
String protocolHandler = System.getProperty(PROTOCOL_HANDLER);
assertThat(protocolHandler).isEqualTo(HANDLERS_PACKAGE);
}
finally {
if (original == null) {
System.clearProperty(PROTOCOL_HANDLER);
}
else {
System.setProperty(PROTOCOL_HANDLER, original);
}
}
}
@Test
public void registerUrlProtocolHandlerAddsToExistingRegistration() {
String original = System.getProperty(PROTOCOL_HANDLER);
try {
System.setProperty(PROTOCOL_HANDLER, "com.example");
JarFile.registerUrlProtocolHandler();
String protocolHandler = System.getProperty(PROTOCOL_HANDLER);
assertThat(protocolHandler).isEqualTo("com.example|" + HANDLERS_PACKAGE);
}
finally {
if (original == null) {
System.clearProperty(PROTOCOL_HANDLER);
}
else {
System.setProperty(PROTOCOL_HANDLER, original);
}
}
}
} }
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