234374 Additional fix for getExistingDOMAdapter(Node)
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
index ef38ef4..ccf8de7 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
@@ -275,7 +275,7 @@
if (adapter != null && adapter.isAdapterForType(EMF2DOMAdapter.ADAPTER_CLASS)) {
// Cast to EMF2DOMAdapter
EMF2DOMAdapter e2DAdapter = (EMF2DOMAdapter) adapter;
- // Check if targets are the resources
+ // First check if targets are resources
if (e2DAdapter.getTarget() != null && e2DAdapter.getTarget() instanceof Resource) {
/*
* Now check if it's the right one (Multiple resources
@@ -288,6 +288,18 @@
sse2domAdapters.add(e2DAdapter);
continue;
}
+ } else {
+ // Check if targets are EObjects with the same resources
+ TranslatorResource myTarget = getResource();
+ EObject adapterTarget = (EObject) e2DAdapter.getTarget();
+ /*
+ * Now check if it's the right one (Multiple resources could
+ * be attached)
+ */
+ if (adapterTarget != null && myTarget != null && adapterTarget.eResource() == myTarget) {
+ return e2DAdapter;
+ }
+ sse2domAdapters.add(e2DAdapter);
}
}
}