]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.acorn/src/org/simantics/acorn/lru/ClusterInfo.java
Fixing problems in the database unit testing environment with Acorn
[simantics/platform.git] / bundles / org.simantics.acorn / src / org / simantics / acorn / lru / ClusterInfo.java
index 57dfe9f41442c0a327012e5f98efe02145bf2cba..f058a559d9ca54960d061b2493a9bbf600d91953 100644 (file)
@@ -20,9 +20,12 @@ import org.simantics.db.exception.SDBException;
 import org.simantics.db.service.Bytes;
 import org.simantics.db.service.ClusterUID;
 import org.simantics.utils.datastructures.Pair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements Persistable {
-       
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ClusterInfo.class);
        final private ClusterManager manager;
        private ClusterImpl cluster;
        public int changeSetId;
@@ -32,7 +35,7 @@ public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements P
        
        // Stub
        public ClusterInfo(ClusterManager manager, LRU<ClusterUID, ClusterInfo> LRU, Path readDirectory, ClusterUID uid, int offset, int length) throws AcornAccessVerificationException {
-               super(LRU, uid, readDirectory, uid.toString() + ".cluster", offset, length, false, false);
+               super(LRU, manager.getFileCache(), uid, readDirectory, uid.toString() + ".cluster", offset, length, false, false);
                this.manager = manager;
                this.cluster = null;
                LRU.map(this);
@@ -40,7 +43,7 @@ public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements P
        
        // New
        public ClusterInfo(ClusterManager manager, LRU<ClusterUID, ClusterInfo> LRU, ClusterImpl cluster) throws AcornAccessVerificationException, IllegalAcornStateException {
-               super(LRU, cluster.getClusterUID(), LRU.getDirectory(), cluster.getClusterUID().toString() + ".cluster", true, true);
+               super(LRU, manager.getFileCache(), cluster.getClusterUID(), LRU.getDirectory(), cluster.getClusterUID().toString() + ".cluster", true, true);
                this.manager = manager;
                this.cluster = cluster;
                LRU.insert(this, accessTime);
@@ -245,11 +248,9 @@ public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements P
        }
        
        public ClusterImpl getForUpdate() throws SDBException {
+               acquireMutex();
                try {
-                       acquireMutex();
-
                        assert(updateState != null);
-                       
                        makeResident();
                        setDirty(true);
                        updateState.beginUpdate();
@@ -330,7 +331,8 @@ public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements P
                        long start = System.nanoTime();
                        state.waitForUpdates();
                        long duration = System.nanoTime() - start;
-                       System.err.println("Wait updates to cluster " + getKey() + " for " + (1e-6 * duration) + "ms.");
+                       if (LOGGER.isDebugEnabled())
+                           LOGGER.debug("Wait updates to cluster " + getKey() + " for " + (1e-6 * duration) + "ms.");
                }
        }
        
@@ -338,5 +340,9 @@ public class ClusterInfo extends LRUObject<ClusterUID, ClusterInfo> implements P
        protected boolean overwrite() {
                return true;
        }
-       
+
+       @Override
+       public Logger getLogger() {
+           return LOGGER;
+       }
 }
\ No newline at end of file