X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.procore%2Fsrc%2Ffi%2Fvtt%2Fsimantics%2Fprocore%2Finternal%2FQueryControlImpl.java;h=f5e55deaae4d8a3b45b434c50c84c76577943836;hp=7165abef3547478f88dde81ba84c9cf15e7d90ef;hb=1f4133242efdb193390d76b0952ade00a3a88309;hpb=0d9b90834ce56b292c00b1a39850ed842c3e4d42 diff --git a/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryControlImpl.java b/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryControlImpl.java index 7165abef3..f5e55deaa 100644 --- a/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryControlImpl.java +++ b/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryControlImpl.java @@ -13,11 +13,16 @@ import org.simantics.db.impl.graph.ReadGraphImpl; import org.simantics.db.procedure.AsyncContextMultiProcedure; import org.simantics.db.procedure.AsyncMultiProcedure; import org.simantics.db.request.ExternalRead; +import org.simantics.db.request.Read; import org.simantics.db.service.QueryControl; import org.simantics.utils.DataContainer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class QueryControlImpl implements QueryControl { - + + private static final Logger LOGGER = LoggerFactory.getLogger(QueryControlImpl.class); + final private SessionImplSocket session; QueryControlImpl(SessionImplSocket session) { @@ -47,7 +52,7 @@ public class QueryControlImpl implements QueryControl { }); } catch (DatabaseException e) { - e.printStackTrace(); + LOGGER.error("query flush failed", e); } return result.get(); } @@ -78,7 +83,7 @@ public class QueryControlImpl implements QueryControl { } }); } catch (DatabaseException e) { - e.printStackTrace(); + LOGGER.error("query gc failed", e); } } @@ -139,8 +144,19 @@ public class QueryControlImpl implements QueryControl { @Override public ReadGraph getIndependentGraph(ReadGraph graph) { ReadGraphImpl impl = (ReadGraphImpl)graph; - return impl.withParent(null); + return impl.withParent(null, null, false); } + + @Override + public T syncRequestIndependent(ReadGraph graph, Read request) throws DatabaseException { + ReadGraphImpl independent = ((ReadGraphImpl)graph).withParent(null, null, false); + independent.asyncBarrier.inc(); + try { + return independent.syncRequest(request); + } finally { + independent.asyncBarrier.dec(); + } + } @Override public boolean hasParentRequest(ReadGraph graph) {