https://bugs.eclipse.org/bugs/show_bug.cgi?id=102038
diff --git a/deprecated/examples/org.eclipse.uml2.examples.emof2ecore/src/org/eclipse/uml2/examples/emof2ecore/EMOF2EcoreResourceHandler.java b/deprecated/examples/org.eclipse.uml2.examples.emof2ecore/src/org/eclipse/uml2/examples/emof2ecore/EMOF2EcoreResourceHandler.java
index 715a87d..d17dc3b 100644
--- a/deprecated/examples/org.eclipse.uml2.examples.emof2ecore/src/org/eclipse/uml2/examples/emof2ecore/EMOF2EcoreResourceHandler.java
+++ b/deprecated/examples/org.eclipse.uml2.examples.emof2ecore/src/org/eclipse/uml2/examples/emof2ecore/EMOF2EcoreResourceHandler.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
*
- * $Id: EMOF2EcoreResourceHandler.java,v 1.3 2005/06/03 19:53:28 khussey Exp $
+ * $Id: EMOF2EcoreResourceHandler.java,v 1.4 2005/06/30 03:17:57 khussey Exp $
*/
package org.eclipse.uml2.examples.emof2ecore;
@@ -163,6 +163,25 @@
((EStructuralFeature) eObject).getEAnnotations());
}
}
+
+ protected void copyReference(EReference eReference,
+ EObject eObject, EObject copyEObject) {
+
+ if (EcorePackage.eINSTANCE.getETypedElement_EType() == eReference) {
+
+ if (eObject.eIsSet(eReference)) {
+ EClassifier eType = (EClassifier) eObject.eGet(
+ eReference, false);
+
+ if (null == eType || eType.eIsProxy()) {
+ copyEObject.eSet(getTarget(eReference), eType);
+ return;
+ }
+ }
+ }
+
+ super.copyReference(eReference, eObject, copyEObject);
+ }
};
EStructuralFeature copyEStructuralFeature = (EStructuralFeature) copier
@@ -289,9 +308,7 @@
EClassifier eType = (EClassifier) eTypedElement.eGet(
EcorePackage.eINSTANCE.getETypedElement_EType(), false);
- if (null != eType && eType.eIsProxy()
- && eType == EcoreUtil.resolve(eType, eTypedElement)) {
-
+ if (null != eType && eType.eIsProxy()) {
URI eProxyURI = ((InternalEObject) eType).eProxyURI();
EPackage ePackage = extendedMetaData.getPackage(eProxyURI
.trimFragment().toString());