Polish "Fix handling of spaces in container's document root"
Closes gh-10706
This commit is contained in:
@@ -19,7 +19,6 @@ package org.springframework.boot.context.embedded;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.JarURLConnection;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.net.URLConnection;
|
||||
@@ -88,7 +87,7 @@ public abstract class AbstractEmbeddedServletContainerFactory
|
||||
}
|
||||
|
||||
private File getExplodedWarFileDocumentRoot() {
|
||||
return getExplodedWarFileDocumentRoot(getCodeSourceArchive(getCodeSource()));
|
||||
return getExplodedWarFileDocumentRoot(getCodeSourceArchive());
|
||||
}
|
||||
|
||||
protected List<URL> getUrlsOfJarsWithMetaInfResources() {
|
||||
@@ -173,7 +172,7 @@ public abstract class AbstractEmbeddedServletContainerFactory
|
||||
}
|
||||
|
||||
private File getArchiveFileDocumentRoot(String extension) {
|
||||
File file = getCodeSourceArchive(getCodeSource());
|
||||
File file = getCodeSourceArchive();
|
||||
if (this.logger.isDebugEnabled()) {
|
||||
this.logger.debug("Code archive: " + file);
|
||||
}
|
||||
@@ -194,6 +193,10 @@ public abstract class AbstractEmbeddedServletContainerFactory
|
||||
return null;
|
||||
}
|
||||
|
||||
private File getCodeSourceArchive() {
|
||||
return getCodeSourceArchive(getClass().getProtectionDomain().getCodeSource());
|
||||
}
|
||||
|
||||
File getCodeSourceArchive(CodeSource codeSource) {
|
||||
try {
|
||||
URL location = (codeSource == null ? null : codeSource.getLocation());
|
||||
@@ -213,16 +216,9 @@ public abstract class AbstractEmbeddedServletContainerFactory
|
||||
}
|
||||
return new File(path);
|
||||
}
|
||||
catch (IOException ex) {
|
||||
catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
catch (URISyntaxException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private CodeSource getCodeSource() {
|
||||
return getClass().getProtectionDomain().getCodeSource();
|
||||
}
|
||||
|
||||
protected final File getValidSessionStoreDir() {
|
||||
|
||||
@@ -678,16 +678,18 @@ public abstract class AbstractEmbeddedServletContainerFactoryTests {
|
||||
@Test
|
||||
public void codeSourceArchivePath() throws Exception {
|
||||
AbstractEmbeddedServletContainerFactory factory = getFactory();
|
||||
final CodeSource codeSource = new CodeSource(new URL("file", "", "/some/test/path/"), (Certificate[]) null);
|
||||
final File codeSourceArchive = factory.getCodeSourceArchive(codeSource);
|
||||
CodeSource codeSource = new CodeSource(new URL("file", "", "/some/test/path/"),
|
||||
(Certificate[]) null);
|
||||
File codeSourceArchive = factory.getCodeSourceArchive(codeSource);
|
||||
assertThat(codeSourceArchive).isEqualTo(new File("/some/test/path/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void codeSourceArchivePathContainingSpaces() throws Exception {
|
||||
AbstractEmbeddedServletContainerFactory factory = getFactory();
|
||||
final CodeSource codeSource = new CodeSource(new URL("file", "", "/test/path/with%20space/"), (Certificate[]) null);
|
||||
final File codeSourceArchive = factory.getCodeSourceArchive(codeSource);
|
||||
CodeSource codeSource = new CodeSource(
|
||||
new URL("file", "", "/test/path/with%20space/"), (Certificate[]) null);
|
||||
File codeSourceArchive = factory.getCodeSourceArchive(codeSource);
|
||||
assertThat(codeSourceArchive).isEqualTo(new File("/test/path/with space/"));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user