X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fquery%2FCacheEntryBase.java;h=e79f99deae1d06ab4469e1496accd8fbcacb3e97;hp=7c87b50e3acfa0e4630f3eb93ba8859c1eb13c90;hb=c4d9561b1b35a0e8e594158fbb01a9c632997808;hpb=9f0fd59be54719b1fe9322d8fd37e4950857308c diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/CacheEntryBase.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/CacheEntryBase.java index 7c87b50e3..e79f99dea 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/CacheEntryBase.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/CacheEntryBase.java @@ -14,10 +14,12 @@ package org.simantics.db.impl.query; import java.util.ArrayList; import java.util.Iterator; +import org.simantics.databoard.Bindings; +import org.simantics.db.DevelopmentKeys; import org.simantics.db.exception.DatabaseException; -import org.simantics.db.impl.DebugPolicy; import org.simantics.db.impl.graph.ReadGraphImpl; import org.simantics.db.impl.procedure.InternalProcedure; +import org.simantics.utils.Development; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,8 +36,8 @@ public abstract class CacheEntryBase extends CacheEntry { final public static CacheEntryBase[] NONE = new CacheEntryBase[0]; - static Object NO_RESULT = new Object(); - static protected Object INVALID_RESULT = new Object(); + static Object NO_RESULT = new Object() { public String toString() { return "NO_RESULT"; }}; + static protected Object INVALID_RESULT = new Object() { public String toString() { return "INVALID_RESULT"; }}; // // Just created // static protected Object FRESH = new Object() { public String toString() { return "CREATED"; }}; @@ -74,6 +76,7 @@ public abstract class CacheEntryBase extends CacheEntry { } public void setReady() { + assert(result != NO_RESULT); statusOrException = READY; } @@ -84,7 +87,11 @@ public abstract class CacheEntryBase extends CacheEntry { @Override public void discard() { - if(DebugPolicy.QUERY_STATE) System.out.println("[QUERY STATE]: discarded " + this); + if (Development.DEVELOPMENT) { + if(Development.getProperty(DevelopmentKeys.CACHE_ENTRY_STATE, Bindings.BOOLEAN)) { + System.err.println("[QUERY STATE]: discarded " + this); + } + } statusOrException = DISCARDED; } @@ -95,7 +102,11 @@ public abstract class CacheEntryBase extends CacheEntry { @Override final public void refute() { - if(DebugPolicy.QUERY_STATE) System.out.println("[QUERY STATE]: refuted " + this); + if (Development.DEVELOPMENT) { + if(Development.getProperty(DevelopmentKeys.CACHE_ENTRY_STATE, Bindings.BOOLEAN)) { + System.err.println("[QUERY STATE]: refuted " + this); + } + } statusOrException = REQUIRES_COMPUTATION; } @@ -106,7 +117,11 @@ public abstract class CacheEntryBase extends CacheEntry { @Override public void except(Throwable throwable) { - if(DebugPolicy.QUERY_STATE) System.out.println("[QUERY STATE]: excepted " + this); + if (Development.DEVELOPMENT) { + if(Development.getProperty(DevelopmentKeys.CACHE_ENTRY_STATE, Bindings.BOOLEAN)) { + System.err.println("[QUERY STATE]: excepted " + this); + } + } if(statusOrException != DISCARDED) { statusOrException = EXCEPTED; result = throwable; @@ -130,8 +145,9 @@ public abstract class CacheEntryBase extends CacheEntry { } @Override - public void setPending() { - statusOrException = PENDING; + public void setPending(QuerySupport querySupport) { + statusOrException = PENDING; + clearResult(querySupport); } @Override @@ -424,8 +440,7 @@ public abstract class CacheEntryBase extends CacheEntry { @Override void prepareRecompute(QuerySupport querySupport) { - setPending(); - clearResult(querySupport); + setPending(querySupport); } @Override