]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AsyncReadEntry.java
Wrong graph was used when performing async query from session
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / AsyncReadEntry.java
index 0dd5730a5f3a1f5c6c232063741bf4343303feb4..5017151b10b9f8478bf1df7319326d020b0fb583 100644 (file)
@@ -92,11 +92,8 @@ final public class AsyncReadEntry<T> extends CacheEntryBase<AsyncProcedure<T>> i
                         }
 
                     }, id, true);
-
-                    id.perform(proc.queryGraph, proc);
                     
-                    proc.dec();
-                    proc.get();
+                    proc.performSync(id);
 
                 } catch (Throwable t) {
                     except(t);
@@ -158,17 +155,10 @@ final public class AsyncReadEntry<T> extends CacheEntryBase<AsyncProcedure<T>> i
             AsyncProcedure<T> procedure_, boolean needsToBlock) throws DatabaseException {
 
         BlockingAsyncProcedure<T> proc = new BlockingAsyncProcedure(callerGraph, entry, procedure_, request, needsToBlock);
-
-        try {
-            request.perform(proc.queryGraph, proc);
-        } finally {
-            proc.queryGraph.asyncBarrier.dec();
-        }
-
         if(needsToBlock) {
-            proc.waitBarrier();
-            return proc.get();
+            return proc.performSync(request);
         } else {
+            proc.performAsync(request);
             return null;
         }