[215714] The specialized semi-derived classes for Ends might cause concurrent modification exceptions
diff --git a/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF b/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF
index 23d6f17..e4b6bd4 100644
--- a/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.uml2.uml/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.uml2.uml; singleton:=true
-Bundle-Version: 2.0.4.qualifier
+Bundle-Version: 2.0.5.qualifier
 Bundle-ClassPath: uml2.uml.jar
 Bundle-Activator: org.eclipse.uml2.uml.UMLPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
index 7d08b8f..dc7f245 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - initial API and implementation
  *
- * $Id: ConnectableElementImpl.java,v 1.15.2.2 2007/07/04 19:41:56 khussey Exp $
+ * $Id: ConnectableElementImpl.java,v 1.15.2.3 2008/02/25 17:50:58 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -320,17 +320,20 @@
 	protected static EndEList getEnds(ConnectableElement connectableElement,
 			EndEList ends) {
 
-		for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(
-			connectableElement).iterator(); nnir.hasNext();) {
-
-			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
-				.next();
-
-			if (setting.getEStructuralFeature() == UMLPackage.Literals.CONNECTOR_END__ROLE) {
-				EObject eObject = setting.getEObject();
-
-				if (!ends.contains(eObject)) {
-					ends.doAddUnique(eObject);
+		if(!connectableElement.eIsProxy()){
+			
+			for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(
+				connectableElement).iterator(); nnir.hasNext();) {
+	
+				EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
+					.next();
+	
+				if (setting.getEStructuralFeature() == UMLPackage.Literals.CONNECTOR_END__ROLE) {
+					EObject eObject = setting.getEObject();
+	
+					if (!ends.contains(eObject)) {
+						ends.doAddUnique(eObject);
+					}
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
index f88ceed..7d56125 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - initial API and implementation
  *
- * $Id: VertexImpl.java,v 1.16.2.2 2007/07/04 19:41:56 khussey Exp $
+ * $Id: VertexImpl.java,v 1.16.2.3 2008/02/25 17:50:58 jbruck Exp $
  */
 package org.eclipse.uml2.uml.internal.impl;
 
@@ -128,17 +128,20 @@
 	protected static OutgoingEList getOutgoings(Vertex vertex,
 			OutgoingEList outgoings) {
 
-		for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(vertex)
-			.iterator(); nnir.hasNext();) {
-
-			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
-				.next();
-
-			if (setting.getEStructuralFeature() == UMLPackage.Literals.TRANSITION__SOURCE) {
-				EObject eObject = setting.getEObject();
-
-				if (!outgoings.contains(eObject)) {
-					outgoings.doAddUnique(eObject);
+		if(!vertex.eIsProxy()){
+			
+			for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(vertex)
+				.iterator(); nnir.hasNext();) {
+	
+				EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
+					.next();
+	
+				if (setting.getEStructuralFeature() == UMLPackage.Literals.TRANSITION__SOURCE) {
+					EObject eObject = setting.getEObject();
+	
+					if (!outgoings.contains(eObject)) {
+						outgoings.doAddUnique(eObject);
+					}
 				}
 			}
 		}
@@ -204,17 +207,20 @@
 
 	protected static IncomingEList getIncomings(Vertex vertex, IncomingEList incomings) {
 
-		for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(vertex)
-			.iterator(); nnir.hasNext();) {
-
-			EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
-				.next();
-
-			if (setting.getEStructuralFeature() == UMLPackage.Literals.TRANSITION__TARGET) {
-				EObject eObject = setting.getEObject();
-
-				if (!incomings.contains(eObject)) {
-					incomings.doAddUnique(eObject);
+		if(!vertex.eIsProxy()){
+			
+			for (Iterator nnir = UML2Util.getNonNavigableInverseReferences(vertex)
+				.iterator(); nnir.hasNext();) {
+	
+				EStructuralFeature.Setting setting = (EStructuralFeature.Setting) nnir
+					.next();
+	
+				if (setting.getEStructuralFeature() == UMLPackage.Literals.TRANSITION__TARGET) {
+					EObject eObject = setting.getEObject();
+	
+					if (!incomings.contains(eObject)) {
+						incomings.doAddUnique(eObject);
+					}
 				}
 			}
 		}