IDEA-108213: ZipException on attempt to extract non-existent jar when building artifact

This commit is contained in:
nik
2013-09-11 12:43:46 +04:00
parent e55712a593
commit ba416aa1b0
2 changed files with 14 additions and 0 deletions
@@ -50,6 +50,8 @@ public class JarBasedArtifactRootDescriptor extends ArtifactRootDescriptor {
}
public void processEntries(EntryProcessor processor) throws IOException {
if (!myRoot.isFile()) return;
String prefix = StringUtil.trimStart(myPathInJar, "/");
if (!StringUtil.endsWithChar(prefix, '/')) prefix += "/";
if (prefix.equals("/")) {
@@ -405,6 +405,18 @@ public class ArtifactBuilderTest extends ArtifactBuilderTestCase {
assertEmptyOutput(a);
}
public void testExtractNonExistentJarFile() {
JpsArtifact a = addArtifact(root().extractedDir("this-file-does-not-exist.jar", "/"));
buildAll();
assertEmptyOutput(a);
}
public void testRepackNonExistentJarFile() {
JpsArtifact a = addArtifact(archive("a.jar").extractedDir("this-file-does-not-exist.jar", "/").fileCopy(createFile("a.txt")));
buildAll();
assertOutput(a, fs().archive("a.jar").file("a.txt"));
}
private static void createFileInArtifactOutput(JpsArtifact a, final String fileName) throws IOException {
assertTrue(new File(a.getOutputPath(), fileName).createNewFile());
}