From 1195c07560cb54921c5d597b7cc97d716b5097e1 Mon Sep 17 00:00:00 2001 From: markdomeng Date: Tue, 15 Apr 2025 23:22:00 +0800 Subject: [PATCH 1/3] Improve loggin in DirectLinkingEObjectInputStream.readEObject --- .../DirectLinkingEObjectInputStream.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java index ee670722f..6830b9b21 100644 --- a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java +++ b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java @@ -17,6 +17,8 @@ import java.io.InputStream; import java.util.Map; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; @@ -52,13 +54,18 @@ public EObject readEObject(final Resource context) throws IOException { EObject eObject = context.getContents().get(readCompressedInt()); count--; while (count > 0) { - EStructuralFeature feature = eObject.eClass().getEStructuralFeature(readCompressedInt()); + int next = readCompressedInt(); + EStructuralFeature feature = eObject.eClass().getEStructuralFeature(next); count--; - if (feature.isMany()) { - eObject = ((EList) eObject.eGet(feature, false)).get(readCompressedInt()); - count--; + if (feature != null) { + if (feature.isMany()) { + eObject = ((EList) eObject.eGet(feature, false)).get(readCompressedInt()); + count--; + } else { + eObject = (EObject) eObject.eGet(feature, false); + } } else { - eObject = (EObject) eObject.eGet(feature, false); + LOGGER.error(String.format("Failed to get EStructuralFeature for Eclass : %s, at readCompressedInt : %d", eObject().eClass().toString(), next)); } } return eObject; From 090eaea47fce1e01a9a1f1c35c50846e0a7ad3d6 Mon Sep 17 00:00:00 2001 From: markdomeng Date: Tue, 15 Apr 2025 23:36:17 +0800 Subject: [PATCH 2/3] Merge pull request #35 from markdomeng/detached Improve loggin in DirectLinkingEObjectInputStream.readEObject --- .../resource/persistence/DirectLinkingEObjectInputStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java index 9f55c3891..d2076882d 100644 --- a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java +++ b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java @@ -67,7 +67,7 @@ public EObject readEObject(final Resource context) throws IOException { eObject = (EObject) eObject.eGet(feature, false); } } else { - LOGGER.error(String.format("Failed to get EStructuralFeature for Eclass : %s, at readCompressedInt : %d", eObject().eClass().toString(), next)); + LOGGER.error(String.format("Failed to get EStructuralFeature for Eclass : %s, at readCompressedInt : %d", eObject.eClass().toString(), next)); } } return eObject; From 382f8a26e095168db47b84a48ec168f3b87ee3fe Mon Sep 17 00:00:00 2001 From: Mark Domingo Date: Wed, 16 Apr 2025 12:50:53 +0800 Subject: [PATCH 3/3] Update com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java Co-authored-by: rubenporras <43636626+rubenporras@users.noreply.github.com> --- .../resource/persistence/DirectLinkingEObjectInputStream.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java index d2076882d..858257129 100644 --- a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java +++ b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingEObjectInputStream.java @@ -67,7 +67,8 @@ public EObject readEObject(final Resource context) throws IOException { eObject = (EObject) eObject.eGet(feature, false); } } else { - LOGGER.error(String.format("Failed to get EStructuralFeature for Eclass : %s, at readCompressedInt : %d", eObject.eClass().toString(), next)); + LOGGER.error(String.format("Failed to get EStructuralFeature for Eclass : %s, at readCompressedInt : %d", eObject.eClass(), next)); + } } return eObject;