Bug 543125 - avoid NPE's on classpath resolving
Change-Id: Ifc35e316b07e0a7fbe4704c199720a7d20c9b119
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
index 81987a5..d490203 100644
--- a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.launching; singleton:=true
-Bundle-Version: 3.12.0.qualifier
+Bundle-Version: 3.12.100.qualifier
Bundle-Activator: org.eclipse.jdt.internal.launching.LaunchingPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/advanced/AdvancedSourceLookup.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/advanced/AdvancedSourceLookup.java
index 77e721c..eefa06c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/advanced/AdvancedSourceLookup.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/sourcelookup/advanced/AdvancedSourceLookup.java
@@ -60,13 +60,21 @@
final Map<File, IPackageFragmentRoot> classpath = new LinkedHashMap<>();
for (IPackageFragmentRoot fragment : project.getPackageFragmentRoots()) {
if (fragment.getKind() == IPackageFragmentRoot.K_BINARY) {
- File classpathLocation;
+ File classpathLocation = null;
if (fragment.isExternal()) {
classpathLocation = fragment.getPath().toFile();
} else {
- classpathLocation = fragment.getResource().getLocation().toFile();
+ IResource resource = fragment.getResource();
+ if (resource != null) {
+ IPath location = resource.getLocation();
+ if (location != null) {
+ classpathLocation = location.toFile();
+ }
+ }
}
- classpath.put(classpathLocation, fragment);
+ if (classpathLocation != null) {
+ classpath.put(classpathLocation, fragment);
+ }
}
}
return classpath;
diff --git a/org.eclipse.jdt.launching/pom.xml b/org.eclipse.jdt.launching/pom.xml
index 50b420b..b98ef87 100644
--- a/org.eclipse.jdt.launching/pom.xml
+++ b/org.eclipse.jdt.launching/pom.xml
@@ -18,7 +18,7 @@
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.launching</artifactId>
- <version>3.12.0-SNAPSHOT</version>
+ <version>3.12.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<build>