Merge lp:~tapaal-contributor/tapaal/fix1987383 into lp:tapaal/3.9

Proposed by Kenneth Yrke Jørgensen
Status: Merged
Approved by: Jiri Srba
Approved revision: 1168
Merged at revision: 1181
Proposed branch: lp:~tapaal-contributor/tapaal/fix1987383
Merge into: lp:tapaal/3.9
Diff against target: 30 lines (+12/-3)
1 file modified
src/pipe/gui/KBoundAnalyzer.java (+12/-3)
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/fix1987383
Reviewer Review Type Date Requested Status
Jiri Srba Approve
Review via email: mp+437131@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jiri Srba (srba) wrote :

tested and works

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/pipe/gui/KBoundAnalyzer.java'
2--- src/pipe/gui/KBoundAnalyzer.java 2023-02-06 11:16:11 +0000
3+++ src/pipe/gui/KBoundAnalyzer.java 2023-02-10 10:51:21 +0000
4@@ -118,14 +118,23 @@
5
6 private TimedArcPetriNet mergeNetComponents() {
7 HashMap<TimedArcPetriNet, DataLayer> guiModels = CreateGui.getCurrentTab().getGuiModels();
8+ HashMap<TimedArcPetriNet, DataLayer> updatedModels = new HashMap<>();
9+
10+ // FIXME: Fixed issue #1987383, error due to changes to collection while iterating iteration over it.
11+ // however, this code seem way out of place and wrong, the way the the update is done is wired.
12+ // I guess the update is done due to a de-sync between the tapnNetwork and gui model, but fixing it this way seems
13+ // crazy. Better would be to make sure the correct gui model is passed.
14+ // The loop lookes even weirder now, but for the bugfix I just rewrote the loop to keep the same behaviour as before
15+ // -- kyrke 2023-02-09
16 for (TimedArcPetriNet net : guiModels.keySet()) {
17 if (tapnNetwork.getTAPNByName(net.name()) != null) {
18 DataLayer dl = guiModels.get(net);
19- guiModels.remove(net);
20- guiModels.put(tapnNetwork.getTAPNByName(net.name()), dl);
21+ updatedModels.put(tapnNetwork.getTAPNByName(net.name()), dl);
22+ } else {
23+ updatedModels.put(net, guiModels.get(net));
24 }
25 }
26- TAPNComposer composer = new TAPNComposer(new MessengerImpl(), guiModels, true, true);
27+ TAPNComposer composer = new TAPNComposer(new MessengerImpl(), updatedModels, true, true);
28 Tuple<TimedArcPetriNet, NameMapping> transformedModel = composer.transformModel(tapnNetwork);
29
30 return transformedModel.value1();

Subscribers

People subscribed via source and target branches