From d3ff0e28b79ea270171f5e29510f1d2d8d23b5fd Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 16 Feb 2019 16:59:35 +0100 Subject: Fix recursive use of computeIfAbsent --- .../cft2ft/.Cft2FtTransformation.xtendbin | Bin 2825 -> 2825 bytes .../cft2ft/.EventMaterializer.xtendbin | Bin 11749 -> 11808 bytes .../transformation/cft2ft/EventMaterializer.java | 29 ++++++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft') diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin index 20f1f4a7..226e6227 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.Cft2FtTransformation.xtendbin differ diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin index 271c9cc0..175ae3f1 100644 Binary files a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin and b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/.EventMaterializer.xtendbin differ diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java index 70481341..ac1fc209 100644 --- a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java +++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.transformation/xtend-gen/hu/bme/mit/inf/dslreasoner/faulttree/transformation/cft2ft/EventMaterializer.java @@ -25,7 +25,6 @@ import hu.bme.mit.inf.dslreasoner.faulttree.model.ft.RandomEvent; import hu.bme.mit.inf.dslreasoner.faulttree.transformation.cft2ft.EventCollection; import java.util.LinkedHashSet; import java.util.Map; -import java.util.function.Function; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.xtend.lib.annotations.Data; @@ -145,10 +144,16 @@ public class EventMaterializer { this.pushEventKey(eventKey); Event _xtrycatchfinallyexpression = null; try { - final Function, Event> _function = (EventMaterializer.EventKey it) -> { - return this.materialize(it.component, it.event); - }; - _xtrycatchfinallyexpression = this.materializationCache.computeIfAbsent(eventKey, _function); + Event _xblockexpression_1 = null; + { + Event event = this.materializationCache.get(eventKey); + if ((event == null)) { + event = this.materialize(component, eventDeclaration); + this.materializationCache.put(eventKey, event); + } + _xblockexpression_1 = event; + } + _xtrycatchfinallyexpression = _xblockexpression_1; } finally { this.popEventKey(eventKey); } @@ -386,10 +391,16 @@ public class EventMaterializer { this.pushEventKey(inputKey); EventCollection _xtrycatchfinallyexpression = null; try { - final Function, EventCollection> _function = (EventMaterializer.EventKey it) -> { - return this.materializeConnectedEvents(it.component, it.event); - }; - _xtrycatchfinallyexpression = this.multipleInputCache.computeIfAbsent(inputKey, _function); + EventCollection _xblockexpression_1 = null; + { + EventCollection eventCollection = this.multipleInputCache.get(inputKey); + if ((eventCollection == null)) { + eventCollection = this.materializeConnectedEvents(component, inputEvent); + this.multipleInputCache.put(inputKey, eventCollection); + } + _xblockexpression_1 = eventCollection; + } + _xtrycatchfinallyexpression = _xblockexpression_1; } finally { this.popEventKey(inputKey); } -- cgit v1.2.3-70-g09d2