]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.simulator.toolkit.db/src/org/simantics/simulator/toolkit/db/StandardVariableNodeManager.java
Update structure and value cache when refreshing variable
[simantics/platform.git] / bundles / org.simantics.simulator.toolkit.db / src / org / simantics / simulator / toolkit / db / StandardVariableNodeManager.java
index a08d733d1374f78c0831e4071524a4b212d005a5..aefa672d46e33ecd3aa675c7f626a960247feedc 100644 (file)
@@ -16,6 +16,9 @@ import org.simantics.db.layer0.variable.NodeSupport;
 import org.simantics.simulator.toolkit.StandardNodeManager;
 import org.simantics.simulator.toolkit.StandardNodeManagerSupport;
 import org.simantics.simulator.toolkit.StandardRealm;
+import org.simantics.simulator.variable.exceptions.NodeManagerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Adds support for Layer0 Variable interface in StandardNodeManager
@@ -24,6 +27,7 @@ import org.simantics.simulator.toolkit.StandardRealm;
  */
 public class StandardVariableNodeManager<Node, Engine extends StandardNodeManagerSupport<Node>> extends StandardNodeManager<Node,Engine> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(StandardVariableNodeManager.class); 
     protected NodeSupport<Node> support;
 
     public StandardVariableNodeManager(StandardRealm<Node, Engine> realm, Node root) {
@@ -33,9 +37,13 @@ public class StandardVariableNodeManager<Node, Engine extends StandardNodeManage
 
     @Override
     public void refreshVariable(Node node) {
+        try {
+            support.refreshCache(node);
+        } catch (NodeManagerException e) {
+            LOGGER.error("Failed to refresh variable", e);
+            throw new RuntimeException(e);
+        }
         super.refreshVariable(node);
-        support.valueCache.clearExpired();
-        support.structureCache.clearExpired();
     }
 
 }
\ No newline at end of file