[458737] Ensuring proxies are resolved during migration (if specified).
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML212UMLResourceHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML212UMLResourceHandler.java
index 0407740..b14fe1f 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML212UMLResourceHandler.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML212UMLResourceHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2014 IBM Corporation, CEA, and others.
+ * Copyright (c) 2008, 2015 IBM Corporation, CEA, 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
@@ -7,7 +7,7 @@
*
* Contributors:
* IBM - initial API and implementation
- * Kenn Hussey (CEA) - 327039, 351774, 405374, 418466
+ * Kenn Hussey (CEA) - 327039, 351774, 405374, 418466, 458737
*
*/
package org.eclipse.uml2.uml.resource;
@@ -156,7 +156,13 @@
value = getValue(extension.getMixed(), name, remove);
if (value instanceof EObject) {
- return (EObject) value;
+ EObject eObject = (EObject) value;
+
+ if (eObject.eIsProxy() && resolveProxies) {
+ eObject = EcoreUtil.resolve(eObject, resource);
+ }
+
+ return eObject;
}
} else if (value instanceof String && resource != null) {
return resource.getEObject((String) value);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java
index f115702..075fa7c 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2014 IBM Corporation, CEA, and others.
+ * Copyright (c) 2006, 2015 IBM Corporation, CEA, 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
@@ -7,7 +7,7 @@
*
* Contributors:
* IBM - initial API and implementation
- * Kenn Hussey (CEA) - 327039, 351774, 399544, 418466
+ * Kenn Hussey (CEA) - 327039, 351774, 399544, 418466, 458737
*
*/
package org.eclipse.uml2.uml.resource;
@@ -232,7 +232,13 @@
value = getValue(extension.getMixed(), name, remove);
if (value instanceof EObject) {
- return (EObject) value;
+ EObject eObject = (EObject) value;
+
+ if (eObject.eIsProxy() && resolveProxies) {
+ eObject = EcoreUtil.resolve(eObject, resource);
+ }
+
+ return eObject;
}
} else if (value instanceof String && resource != null) {
return resource.getEObject((String) value);
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML302UMLResourceHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML302UMLResourceHandler.java
index 9065246..6e174a7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML302UMLResourceHandler.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML302UMLResourceHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014 CEA and others.
+ * Copyright (c) 2011, 2015 CEA 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
@@ -7,7 +7,7 @@
*
* Contributors:
* Kenn Hussey (CEA) - initial API and implementation
- * Kenn Hussey (CEA) - 351774, 405374, 418466
+ * Kenn Hussey (CEA) - 351774, 405374, 418466, 458737
*
*/
package org.eclipse.uml2.uml.resource;
@@ -141,7 +141,13 @@
value = getValue(extension.getMixed(), name, remove);
if (value instanceof EObject) {
- return (EObject) value;
+ EObject eObject = (EObject) value;
+
+ if (eObject.eIsProxy() && resolveProxies) {
+ eObject = EcoreUtil.resolve(eObject, resource);
+ }
+
+ return eObject;
}
} else if (value instanceof String && resource != null) {
return resource.getEObject((String) value);