Support reading entries without trailing '/'

Update RandomAccessJarFile entries when the name is specified without
a trailing '/'
This commit is contained in:
Phillip Webb 2013-07-04 22:22:16 -07:00
parent f00eed4b07
commit 1dbafae748
2 changed files with 13 additions and 2 deletions

View File

@ -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

View File

@ -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