Index: build.xml
===================================================================
--- build.xml	(revision 8171)
+++ build.xml	(working copy)
@@ -434,6 +434,7 @@
         -keep class * extends org.openstreetmap.josm.io.FileExporter
         -keep class org.w3._2001.xmlschema.Adapter1
         -keep class org.openstreetmap.josm.actions.search.SearchCompiler$Never
+        -keep class org.apache.commons.logging.impl.*
 
         -keepclassmembers enum  * {
             public static **[] values();
Index: src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
===================================================================
--- src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 8171)
+++ src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(working copy)
@@ -14,7 +14,7 @@
 import org.apache.commons.jcs.auxiliary.AuxiliaryCache;
 import org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCache;
 import org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes;
-import org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheManager;
+import org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory;
 import org.apache.commons.jcs.engine.CompositeCacheAttributes;
 import org.apache.commons.jcs.engine.behavior.ICompositeCacheAttributes.DiskUsagePattern;
 import org.apache.commons.jcs.engine.control.CompositeCache;
@@ -27,7 +27,7 @@
 
 /**
  * @author Wiktor Niesiobędzki
- * 
+ *
  * Wrapper class for JCS Cache. Sets some sane environment and returns instances of cache objects.
  * Static configuration for now assumes some small LRU cache in memory and larger LRU cache on disk
  *
@@ -38,6 +38,7 @@
     private static volatile CompositeCacheManager cacheManager = null;
     private static long maxObjectTTL        = Long.MAX_VALUE;
     private final static String PREFERENCE_PREFIX = "jcs.cache";
+    private final static IndexedDiskCacheFactory diskCacheFactory = new IndexedDiskCacheFactory();
 
     /**
      * default objects to be held in memory by JCS caches (per region)
@@ -140,7 +141,8 @@
         if (cachePath != null) {
             IndexedDiskCacheAttributes diskAttributes = getDiskCacheAttributes(maxDiskObjects, cachePath);
             diskAttributes.setCacheName(cacheName);
-            IndexedDiskCache<K, V> diskCache = IndexedDiskCacheManager.getInstance(null, null, new StandardSerializer()).getCache(diskAttributes);
+            IndexedDiskCache<K, V> diskCache = diskCacheFactory.createCache(diskAttributes, cacheManager, null, new StandardSerializer());
+
             cc.setAuxCaches(new AuxiliaryCache[]{diskCache});
         }
         return new CacheAccess<K, V>(cc);
