import org.simantics.db.AsyncReadGraph;
import org.simantics.db.ChangeSet;
import org.simantics.db.DevelopmentKeys;
+import org.simantics.db.Disposable;
import org.simantics.db.ExternalValueSupport;
import org.simantics.db.Metadata;
import org.simantics.db.MonitorContext;
try {
flushCounter = 0;
+ Disposable.safeDispose(clientChanges);
clientChanges = new ClientChangesImpl(SessionImplSocket.this);
VirtualGraph vg = getProvider(request.getProvider());
}
- assert(!queryProvider2.dirty);
+ assert(!queryProvider2.cache.dirty);
} catch (Throwable e) {
fireSessionVariableChange(SessionVariables.QUEUED_WRITES);
flushCounter = 0;
+ Disposable.safeDispose(clientChanges);
clientChanges = new ClientChangesImpl(SessionImplSocket.this);
VirtualGraph vg = getProvider(request.getProvider());
fireSessionVariableChange(SessionVariables.QUEUED_WRITES);
flushCounter = 0;
+ Disposable.safeDispose(clientChanges);
clientChanges = new ClientChangesImpl(SessionImplSocket.this);
acquireWriteOnly();
try {
int sResourceKey = ClusterTraits.getResourceIndexFromResourceKey(s);
- int pResourceKey = ClusterTraits.getResourceIndexFromResourceKey(p);
- int oResourceKey = ClusterTraits.getResourceIndexFromResourceKey(o);
ClusterI pc = clusterTable.getClusterProxyByResourceKey(p);
ClusterI oc = clusterTable.getClusterProxyByResourceKey(o);
clusterTranslator.addStatementIndex(cluster, sResourceKey, cluster.getClusterUID(), ClusterChange.REMOVE_OPERATION);
- clusterTranslator.addStatementIndex(cluster, pResourceKey, pc.getClusterUID(), ClusterStream.NULL_OPERATION);
- clusterTranslator.addStatementIndex(cluster, oResourceKey, oc.getClusterUID(), ClusterStream.NULL_OPERATION);
+ clusterTranslator.addStatementIndex(cluster, p, pc.getClusterUID(), ClusterStream.NULL_OPERATION);
+ clusterTranslator.addStatementIndex(cluster, o, oc.getClusterUID(), ClusterStream.NULL_OPERATION);
clusterTranslator.removeStatement(cluster);
queryProvider2.invalidateResource(s);
fireSessionVariableChange(SessionVariables.QUEUED_WRITES);
flushCounter = 0;
+ Disposable.safeDispose(clientChanges);
clientChanges = new ClientChangesImpl(SessionImplSocket.this);
acquireWriteOnly();
fireSessionVariableChange(SessionVariables.QUEUED_WRITES);
flushCounter = 0;
+ Disposable.safeDispose(clientChanges);
clientChanges = new ClientChangesImpl(SessionImplSocket.this);
acquireWriteOnly();
if (listener != null) {
try {
- newGraph.processor.queryRead(newGraph, request, null, new AsyncProcedure<T>() {
+ newGraph.processor.query(newGraph, request, null, new AsyncProcedure<T>() {
@Override
public void exception(AsyncReadGraph graph, Throwable t) {
if (listener != null) {
- newGraph.processor.query(newGraph, request, null, procedure, listener);
-
-// newGraph.waitAsync(request);
+ try {
+ newGraph.processor.query(newGraph, request, null, procedure, listener);
+ } catch (DatabaseException e) {
+ Logger.defaultLogError(e);
+ }
} else {
public int getAmountOfQueryThreads() {
// This must be a power of two
- return 1;
+ return 4;
// return Integer.highestOneBit(Runtime.getRuntime().availableProcessors());
}