[182186] Regression in bug 179592
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
index 95f90c9..eb9bfca 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
@@ -158,23 +158,28 @@
}
String key = project.getName() + "/" + runtime.getId();
- IClasspathEntry[] previousEntries = (IClasspathEntry[]) previousClasspath.get(key);
- if ((previousEntries == null && entries != null) || (previousEntries != null && entries == null)
- || (previousEntries != null && entries != null && previousEntries.length != entries.length)) {
- Trace.trace(Trace.FINEST, "Classpath update: " + key + " " + entries);
+ if (!previousClasspath.containsKey(key))
+ previousClasspath.put(key, entries);
+ else {
+ IClasspathEntry[] previousEntries = (IClasspathEntry[]) previousClasspath.get(key);
- IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
- path = path.append(extensionId).append(runtime.getId());
- try {
- IJavaProject javaProject = JavaCore.create(project);
- JavaCore.setClasspathContainer(path, new IJavaProject[] { javaProject },
- new IClasspathContainer[] { null }, new NullProgressMonitor());
- } catch (JavaModelException jme) {
- Trace.trace(Trace.WARNING, "Error updating classpath", jme);
+ if ((previousEntries == null && entries != null) || (previousEntries != null && entries == null)
+ || (previousEntries != null && entries != null && previousEntries.length != entries.length)) {
+ Trace.trace(Trace.FINEST, "Classpath update: " + key + " " + entries);
+ previousClasspath.put(key, entries);
+
+ IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
+ path = path.append(extensionId).append(runtime.getId());
+ try {
+ IJavaProject javaProject = JavaCore.create(project);
+ JavaCore.setClasspathContainer(path, new IJavaProject[] { javaProject },
+ new IClasspathContainer[] { null }, new NullProgressMonitor());
+ } catch (JavaModelException jme) {
+ Trace.trace(Trace.WARNING, "Error updating classpath", jme);
+ }
}
}
- previousClasspath.put(key, entries);
return entries;
}