drop memory caches only when is dirty
authorEugene Zhuravlev <jeka@intellij.com>
Sat, 28 Jan 2012 18:21:28 +0000 (19:21 +0100)
committerEugene Zhuravlev <jeka@intellij.com>
Sat, 28 Jan 2012 18:24:45 +0000 (19:24 +0100)
jps/jps-builders/src/org/jetbrains/jps/incremental/storage/AbstractStateStorage.java
jps/model/src/org/jetbrains/ether/dependencyView/PersistentMaplet.java
jps/model/src/org/jetbrains/ether/dependencyView/PersistentMultiMaplet.java

index 6da5a613e6518ab678e802e2988509c37086747b..9b7ba49e17496af4d9236561fe65fd8a86d8dead 100644 (file)
@@ -34,7 +34,9 @@ public abstract class AbstractStateStorage<Key, T> {
 
   public void dropMemoryCache() {
     synchronized (myDataLock) {
-      myMap.dropMemoryCaches();
+      if (myMap.isDirty()) {
+        myMap.dropMemoryCaches();
+      }
     }
   }
 
index b60661c8948d25ea1432a415e83451a23855195f..b6fcaa71305208c8bfac2ec3ca50b3c1b2db4009 100644 (file)
@@ -108,7 +108,9 @@ public class PersistentMaplet<K, V> implements Maplet<K, V> {
 
   public void flush(boolean memoryCachesOnly) {
     if (memoryCachesOnly) {
-      myMap.dropMemoryCaches();
+      if (myMap.isDirty()) {
+        myMap.dropMemoryCaches();
+      }
     }
     else {
       myMap.force();
index b62eb72f2b76bed1bbd9f19a56ce8c10df839c84..3cfc2966da50164dafaa9915f80aecec1ea94674 100644 (file)
@@ -169,7 +169,9 @@ class PersistentMultiMaplet<K, V> implements MultiMaplet<K, V> {
 
   public void flush(boolean memoryCachesOnly) {
     if (memoryCachesOnly) {
-      myMap.dropMemoryCaches();
+      if (myMap.isDirty()) {
+        myMap.dropMemoryCaches();
+      }
     }
     else {
       myMap.force();