From 1dbafae7482ef7494a2ee8356077c752ee8410dc Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 4 Jul 2013 22:22:16 -0700 Subject: [PATCH] Support reading entries without trailing '/' Update RandomAccessJarFile entries when the name is specified without a trailing '/' --- .../bootstrap/launcher/jar/RandomAccessJarFile.java | 6 +++++- .../bootstrap/launcher/jar/RandomAccessJarFileTest.java | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/spring-bootstrap-launcher/src/main/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFile.java b/spring-bootstrap-launcher/src/main/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFile.java index 6dbd581021b..526d3daf696 100644 --- a/spring-bootstrap-launcher/src/main/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFile.java +++ b/spring-bootstrap-launcher/src/main/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFile.java @@ -175,7 +175,11 @@ public class RandomAccessJarFile extends JarFile { @Override public ZipEntry getEntry(String name) { - return this.entries.get(name); + JarEntry entry = this.entries.get(name); + if (entry == null && name != null && !name.endsWith("/")) { + entry = this.entries.get(name + "/"); + } + return entry; } @Override diff --git a/spring-bootstrap-launcher/src/test/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFileTest.java b/spring-bootstrap-launcher/src/test/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFileTest.java index ca46a6241a4..906290dc6e1 100644 --- a/spring-bootstrap-launcher/src/test/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFileTest.java +++ b/spring-bootstrap-launcher/src/test/java/org/springframework/bootstrap/launcher/jar/RandomAccessJarFileTest.java @@ -52,7 +52,7 @@ import org.springframework.bootstrap.launcher.data.RandomAccessDataFile; /** * Tests for {@link RandomAccessJarFile}. - * + * * @author Phillip Webb */ public class RandomAccessJarFileTest { @@ -300,6 +300,13 @@ public class RandomAccessJarFileTest { assertThat(inputStream.read(), equalTo(-1)); } + @Test + public void getDirectoryInputStreamWithoutSlash() throws Exception { + InputStream inputStream = jarFile.getInputStream(jarFile.getEntry("d")); + assertThat(inputStream, notNullValue()); + assertThat(inputStream.read(), equalTo(-1)); + } + @Test public void getFilteredJarFile() throws Exception { RandomAccessJarFile filteredJarFile = jarFile