[321175] ClassCastException: PassthruResourcesEList incompatible with SynchronizedResourcesEList
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
index 7c612ed..5250b54 100644
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
+++ b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
@@ -10,7 +10,7 @@
*******************************************************************************/
/*
* $$RCSfile: ProjectResourceSetImpl.java,v $$
- * $$Revision: 1.31 $$ $$Date: 2010/07/14 14:39:20 $$
+ * $$Revision: 1.32 $$ $$Date: 2010/07/29 18:20:34 $$
*/
package org.eclipse.jem.internal.util.emf.workbench;
@@ -946,7 +946,15 @@
*/
public List<Resource> getImmutableResources() {
List <Resource> list = new ArrayList<Resource>();
- ((SynchronizedResourcesEList)getResources()).copyInto(list);
+ EList resources = getResources();
+ if (resources instanceof SynchronizedResourcesEList)
+ {
+ ((SynchronizedResourcesEList)resources).copyInto(list);
+ }
+ else
+ {
+ list = Collections.synchronizedList(resources);
+ }
return list;
}
@Override
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
index 1c04b70..a4e957d 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/PassthruResourceSet.java
@@ -20,7 +20,6 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl;
import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
@@ -41,7 +40,7 @@
public class PassthruResourceSet extends ProjectResourceSetImpl {
protected boolean isIsolated = false;
- public class PassthruResourcesEList extends ResourceSetImpl.ResourcesEList {
+ public class PassthruResourcesEList extends SynchronizedResourcesEList {
/**
*
*/