diff options
author | Till Brychcy | 2018-11-07 20:59:16 +0000 |
---|---|---|
committer | Till Brychcy | 2018-11-07 20:59:16 +0000 |
commit | 80bdaef13bd0d7936f073b42674151f04a4e7caf (patch) | |
tree | 1135513d0f0a33b7340635dfdc40eb5ed5fd76a2 | |
parent | 04e41961470fd11a6f9c97ce199f6d3349b99f39 (diff) | |
download | eclipse.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.java | 21 | ||||
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java | 1 |
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; |