Ensure that closing a JarFile closes all underlying resources

Closes gh-8871
This commit is contained in:
Andy Wilkinson 2017-05-23 20:42:59 +01:00
parent 50876382db
commit f7127e5522
2 changed files with 11 additions and 1 deletions

View File

@ -298,6 +298,7 @@ public class JarFile extends java.util.jar.JarFile {
@Override @Override
public void close() throws IOException { public void close() throws IOException {
super.close();
this.rootFile.close(); this.rootFile.close();
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2017 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -469,4 +469,13 @@ public class JarFileTests {
} }
} }
@Test
public void jarFileCanBeDeletedOnceItHasBeenClosed() throws Exception {
File temp = this.temporaryFolder.newFile();
TestJarCreator.createTestJar(temp);
JarFile jf = new JarFile(temp);
jf.close();
assertThat(temp.delete()).isTrue();
}
} }