From 736cb3cfd3281aafa282b6f2d225a931ef50ee2b Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Fri, 13 Feb 2026 14:58:55 -0500 Subject: [PATCH 1/3] ST6RI-913 Implemented EOperandList.iterator to return an empty iterator. --- .../src/org/omg/sysml/util/OperandEList.java | 43 +++++++++++++------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java b/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java index 85b01df29..241dc3eee 100644 --- a/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java +++ b/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java @@ -22,6 +22,7 @@ package org.omg.sysml.util; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.ListIterator; @@ -176,43 +177,53 @@ public boolean contains(Object o) { @Override public Iterator iterator() { - throw new UnsupportedOperationException(); } + return Collections.emptyIterator(); + } @Override public Object[] toArray() { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public T[] toArray(T[] a) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean add(Expression e) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean containsAll(Collection c) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean addAll(Collection c) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean addAll(int index, Collection c) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean removeAll(Collection c) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public boolean retainAll(Collection c) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public Expression set(int index, Expression element) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public void add(int index, Expression element) { @@ -231,17 +242,21 @@ public int lastIndexOf(Object o) { @Override public ListIterator listIterator() { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public ListIterator listIterator(int index) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public List subList(int fromIndex, int toIndex) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } @Override public Expression basicGet(int index) { - throw new UnsupportedOperationException(); } + throw new UnsupportedOperationException(); + } } From 28f21356a06d2023eaff64ef81ea61c49c1b9e9e Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Fri, 13 Feb 2026 16:39:23 -0500 Subject: [PATCH 2/3] ST6RI-912 Also implemented other iterator returning methods. --- .../src/org/omg/sysml/util/OperandEList.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java b/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java index 241dc3eee..b4291cb0c 100644 --- a/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java +++ b/org.omg.sysml/src/org/omg/sysml/util/OperandEList.java @@ -103,17 +103,17 @@ public int basicIndexOf(Object object) { @Override public int basicLastIndexOf(Object object) { - throw new UnsupportedOperationException(); + return -1; } @Override public boolean basicContains(Object object) { - throw new UnsupportedOperationException(); + return false; } @Override public boolean basicContainsAll(Collection collection) { - throw new UnsupportedOperationException(); + return false; } @Override @@ -128,22 +128,22 @@ public NotificationChain basicAdd(Expression object, NotificationChain notificat @Override public List basicList() { - throw new UnsupportedOperationException(); + return Collections.emptyList(); } @Override public Iterator basicIterator() { - throw new UnsupportedOperationException(); + return Collections.emptyIterator(); } @Override public ListIterator basicListIterator() { - throw new UnsupportedOperationException(); + return Collections.emptyListIterator(); } @Override public ListIterator basicListIterator(int i) { - throw new UnsupportedOperationException(); + return Collections.emptyListIterator(); } @Override @@ -197,7 +197,7 @@ public boolean add(Expression e) { @Override public boolean containsAll(Collection c) { - throw new UnsupportedOperationException(); + return false; } @Override @@ -242,7 +242,7 @@ public int lastIndexOf(Object o) { @Override public ListIterator listIterator() { - throw new UnsupportedOperationException(); + return Collections.emptyListIterator(); } @Override @@ -252,7 +252,7 @@ public ListIterator listIterator(int index) { @Override public List subList(int fromIndex, int toIndex) { - throw new UnsupportedOperationException(); + return Collections.emptyList(); } @Override From b86e0af8f69419bcc8516ab66e24546bc3cc8d9d Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Fri, 13 Feb 2026 23:29:11 -0500 Subject: [PATCH 3/3] ST6RI-913 Updated FeatureAdapter.computeValueConnector to avoid NPE. --- org.omg.sysml/src/org/omg/sysml/adapter/FeatureAdapter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/org.omg.sysml/src/org/omg/sysml/adapter/FeatureAdapter.java b/org.omg.sysml/src/org/omg/sysml/adapter/FeatureAdapter.java index df41237d1..61da902d8 100644 --- a/org.omg.sysml/src/org/omg/sysml/adapter/FeatureAdapter.java +++ b/org.omg.sysml/src/org/omg/sysml/adapter/FeatureAdapter.java @@ -822,7 +822,11 @@ protected void computeValueConnector() { if (FeatureUtil.getValuationFor(target).isInitial()) { Feature that = (Feature)getLibraryType("Base::things::that"); Feature startShot = (Feature)getLibraryType("Occurrences::Occurrence::startShot"); - featuringTypes = Collections.singletonList(FeatureUtil.chainFeatures(that, startShot)); + if (that != null && startShot != null) { + featuringTypes = Collections.singletonList(FeatureUtil.chainFeatures(that, startShot)); + } else { + featuringTypes = target.getFeaturingType(); + } } else { featuringTypes = target.getFeaturingType(); }