Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Brychcy2018-11-07 20:59:16 +0000
committerTill Brychcy2018-11-07 20:59:16 +0000
commit80bdaef13bd0d7936f073b42674151f04a4e7caf (patch)
tree1135513d0f0a33b7340635dfdc40eb5ed5fd76a2
parent04e41961470fd11a6f9c97ce199f6d3349b99f39 (diff)
downloadeclipse.jdt.core-80bdaef13bd0d7936f073b42674151f04a4e7caf.tar.gz
eclipse.jdt.core-80bdaef13bd0d7936f073b42674151f04a4e7caf.tar.xz
eclipse.jdt.core-80bdaef13bd0d7936f073b42674151f04a4e7caf.zip
Bug 540904 - NPE below ClasspathMultiReleaseJar.initializeVersions ifI20181107-1800
linked resource is missing Change-Id: I236b28defce48dc6df135d3403d45b0515f59c68
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java21
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java1
2 files changed, 22 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
index 0e8f6451f3..643506d5e7 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
@@ -7018,6 +7018,27 @@ public class ModuleBuilderTests extends ModifyingResourceTests {
JavaCore.setOptions(options);
}
}
+ // missing linked jar must not cause NPE
+ public void testBug540904() throws CoreException, IOException {
+ if (!isJRE9) return;
+ try {
+ String[] src = new String[] {
+ "src/test/Test.java",
+ "package test;\n" +
+ "public class Test {\n" +
+ "}"
+ };
+ IJavaProject p2 = setupModuleProject("Bug540904", src, new IClasspathEntry[] { });
+ IFile file = getFile("/Bug540904/link.jar");
+ file.createLink(new Path("MISSING/missing.jar"), IResource.ALLOW_MISSING_LOCAL, null);
+ addLibraryEntry(p2, file.getFullPath(), false);
+ getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
+ IMarker[] markers = p2.getProject().findMarkers(null, true, IResource.DEPTH_INFINITE);
+ assertMarkers("Unexpected markers", "", markers);
+ } finally {
+ this.deleteProject("Bug540904");
+ }
+ }
protected void assertNoErrors() throws CoreException {
for (IProject p : getWorkspace().getRoot().getProjects()) {
int maxSeverity = p.findMaxProblemSeverity(null, true, IResource.DEPTH_INFINITE);
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java
index e28e4453df..592f193cfa 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java
@@ -166,6 +166,7 @@ ClasspathJar(IFile resource, AccessRuleSet accessRuleSet, IPath externalAnnotati
}
} catch (CoreException e) {
// ignore
+ this.zipFilename = ""; //$NON-NLS-1$
}
this.zipFile = null;
this.knownPackageNames = null;

Back to the top