Merge pull request #18883 from izeye

* pr/18883:
  Use try-with-resources blocks in JarFileArchiveTests

Closes gh-18883
pull/18915/head
Stephane Nicoll 5 years ago
commit b35573a5aa

@ -98,48 +98,48 @@ class JarFileArchiveTests {
@Test
void getNestedArchive() throws Exception {
Entry entry = getEntriesMap(this.archive).get("nested.jar");
Archive nested = this.archive.getNestedArchive(entry);
try (Archive nested = this.archive.getNestedArchive(entry)) {
assertThat(nested.getUrl().toString()).isEqualTo("jar:" + this.rootJarFileUrl + "!/nested.jar!/");
((JarFileArchive) nested).close();
}
}
@Test
void getNestedUnpackedArchive() throws Exception {
setup(true);
Entry entry = getEntriesMap(this.archive).get("nested.jar");
Archive nested = this.archive.getNestedArchive(entry);
try (Archive nested = this.archive.getNestedArchive(entry)) {
assertThat(nested.getUrl().toString()).startsWith("file:");
assertThat(nested.getUrl().toString()).endsWith("/nested.jar");
((JarFileArchive) nested).close();
}
}
@Test
void unpackedLocationsAreUniquePerArchive() throws Exception {
setup(true);
Entry entry = getEntriesMap(this.archive).get("nested.jar");
Archive firstNested = this.archive.getNestedArchive(entry);
URL firstNestedUrl = firstNested.getUrl();
((JarFileArchive) firstNested).close();
URL firstNestedUrl;
try (Archive firstNested = this.archive.getNestedArchive(entry)) {
firstNestedUrl = firstNested.getUrl();
}
this.archive.close();
setup(true);
entry = getEntriesMap(this.archive).get("nested.jar");
Archive secondNested = this.archive.getNestedArchive(entry);
try (Archive secondNested = this.archive.getNestedArchive(entry)) {
URL secondNestedUrl = secondNested.getUrl();
assertThat(secondNestedUrl).isNotEqualTo(firstNestedUrl);
((JarFileArchive) secondNested).close();
}
}
@Test
void unpackedLocationsFromSameArchiveShareSameParent() throws Exception {
setup(true);
Archive nestedArchive = this.archive.getNestedArchive(getEntriesMap(this.archive).get("nested.jar"));
File nested = new File(nestedArchive.getUrl().toURI());
try (Archive nestedArchive = this.archive.getNestedArchive(getEntriesMap(this.archive).get("nested.jar"));
Archive anotherNestedArchive = this.archive
.getNestedArchive(getEntriesMap(this.archive).get("another-nested.jar"));
.getNestedArchive(getEntriesMap(this.archive).get("another-nested.jar"))) {
File nested = new File(nestedArchive.getUrl().toURI());
File anotherNested = new File(anotherNestedArchive.getUrl().toURI());
assertThat(nested.getParent()).isEqualTo(anotherNested.getParent());
((JarFileArchive) nestedArchive).close();
((JarFileArchive) anotherNestedArchive).close();
}
}
@Test
@ -156,9 +156,9 @@ class JarFileArchiveTests {
}
@Test
void nestedZip64ArchivesAreHandledGracefully() throws IOException {
void nestedZip64ArchivesAreHandledGracefully() throws Exception {
File file = new File(this.tempDir, "test.jar");
JarOutputStream output = new JarOutputStream(new FileOutputStream(file));
try (JarOutputStream output = new JarOutputStream(new FileOutputStream(file))) {
JarEntry zip64JarEntry = new JarEntry("nested/zip64.jar");
output.putNextEntry(zip64JarEntry);
byte[] zip64JarData = writeZip64Jar();
@ -170,26 +170,26 @@ class JarFileArchiveTests {
zip64JarEntry.setCrc(crc32.getValue());
output.write(zip64JarData);
output.closeEntry();
output.close();
JarFileArchive jarFileArchive = new JarFileArchive(file);
Archive nestedArchive = jarFileArchive.getNestedArchive(getEntriesMap(jarFileArchive).get("nested/zip64.jar"));
}
try (JarFileArchive jarFileArchive = new JarFileArchive(file);
Archive nestedArchive = jarFileArchive
.getNestedArchive(getEntriesMap(jarFileArchive).get("nested/zip64.jar"))) {
Iterator<Entry> it = nestedArchive.iterator();
for (int i = 0; i < 65537; i++) {
assertThat(it.hasNext()).as(i + "nth file is present").isTrue();
it.next();
}
((JarFileArchive) nestedArchive).close();
jarFileArchive.close();
}
}
private byte[] writeZip64Jar() throws IOException {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
JarOutputStream jarOutput = new JarOutputStream(bytes);
try (JarOutputStream jarOutput = new JarOutputStream(bytes)) {
for (int i = 0; i < 65537; i++) {
jarOutput.putNextEntry(new JarEntry(i + ".dat"));
jarOutput.closeEntry();
}
jarOutput.close();
}
return bytes.toByteArray();
}

Loading…
Cancel
Save