]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/Dependencies.java
AsyncBarrier.dec runs into refcounting problem
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / genericrelation / Dependencies.java
index 0aa36390b6030ed4068ed99ed9c5160640feeb73..83837a960a6950888baf3180b664be0fadfb4fbb 100644 (file)
@@ -13,13 +13,14 @@ package org.simantics.db.layer0.genericrelation;
 
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
-import org.simantics.db.common.utils.Logger;
+import org.simantics.db.common.request.UniqueRead;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.layer0.adapter.GenericRelationIndex;
 import org.simantics.db.service.QueryControl;
 import org.simantics.operation.Layer0X;
 import org.simantics.scl.runtime.function.FunctionImpl4;
 import org.simantics.scl.runtime.function.UnsaturatedFunction2;
+import org.slf4j.LoggerFactory;
 
 /**
  * dependencies:
@@ -30,6 +31,8 @@ import org.simantics.scl.runtime.function.UnsaturatedFunction2;
  */
 public class Dependencies extends FunctionImpl4<ReadGraph, Resource, String, Integer, Object> {
 
+    private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Dependencies.class);
+
     public static final String FIELD_MODEL    = "Model";
     public static final String FIELD_PARENT   = "Parent";
     public static final String FIELD_RESOURCE = "Resource";
@@ -71,10 +74,15 @@ public class Dependencies extends FunctionImpl4<ReadGraph, Resource, String, Int
             final int maxResults = _maxResults != null ? _maxResults : Integer.MAX_VALUE;
             
             QueryControl qc = graph.getService(QueryControl.class);
-            return index.query(qc.getIndependentGraph(graph), query, getBindingPattern(), new Object[] { model }, maxResults);
+            return qc.syncRequestIndependent(graph, new UniqueRead<Object>() {
+                @Override
+                public Object perform(ReadGraph graph) throws DatabaseException {
+                    return index.query(graph, query, getBindingPattern(), new Object[] { model }, maxResults);
+                }
+            });
             
         } catch (DatabaseException e) {
-            Logger.defaultLogError(e);
+            LOGGER.error("Error while performing index query", e);
             return null;
         }
     }