Bug 540467 - [9] getModuleCLIOptions throws exception if Java project on
classpath is closed
Change-Id: Ia577f2424c2b2200f41cada73922760086f95455
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 094e73b..574a381 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -3406,15 +3406,17 @@
if (classpathEntry != null && classpathEntry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
IResource res = root.findMember(classpathEntry.getPath());
IJavaProject jp = (IJavaProject) JavaCore.create(res);
- IClasspathEntry[] rawClasspath = jp.getRawClasspath();
- for (IClasspathEntry iClasspathEntry : rawClasspath) {
- if (iClasspathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
- if (JavaRuntime.JRE_CONTAINER.equals(iClasspathEntry.getPath().segment(0))) {
- String cliOptions = getModuleCLIOptions(jp, iClasspathEntry);
- if (cliOptionString.length() > 0 && cliOptions.length() > 0) {
- cliOptionString.append(" "); //$NON-NLS-1$
+ if (jp.isOpen()) {
+ IClasspathEntry[] rawClasspath = jp.getRawClasspath();
+ for (IClasspathEntry iClasspathEntry : rawClasspath) {
+ if (iClasspathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
+ if (JavaRuntime.JRE_CONTAINER.equals(iClasspathEntry.getPath().segment(0))) {
+ String cliOptions = getModuleCLIOptions(jp, iClasspathEntry);
+ if (cliOptionString.length() > 0 && cliOptions.length() > 0) {
+ cliOptionString.append(" "); //$NON-NLS-1$
+ }
+ cliOptionString.append(cliOptions);
}
- cliOptionString.append(cliOptions);
}
}
}