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);
 							}
 						}
 					}