From 55118b6b311ce271a422fa991f8997fccec0f890 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 23 Oct 2020 09:16:20 +0100 Subject: [PATCH] ChoiceActionsSimple bugfix (copy constructor with mismatched arrays sizes). --- prism/src/explicit/ChoiceActionsSimple.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/prism/src/explicit/ChoiceActionsSimple.java b/prism/src/explicit/ChoiceActionsSimple.java index 31e83477..2184799a 100644 --- a/prism/src/explicit/ChoiceActionsSimple.java +++ b/prism/src/explicit/ChoiceActionsSimple.java @@ -79,13 +79,15 @@ public class ChoiceActionsSimple { actions = null; if (cas.actions != null) { - int numStates = cas.actions.size(); + // NB: permut.length is a more reliable source of numStates + // since cas.actions may be undersized + int numStates = permut.length; actions = new ArrayList>(numStates); for (int s = 0; s < numStates; s++) { actions.add(null); } for (int s = 0; s < numStates; s++) { - if (cas.actions.get(s) != null) { + if (s < cas.actions.size() && cas.actions.get(s) != null) { actions.set(permut[s], new ArrayList<>(cas.actions.get(s))); } }