Index: trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 19461)
+++ trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 19462)
@@ -51,4 +51,5 @@
 
     private static final AuxiliaryCacheFactory DISK_CACHE_FACTORY = getDiskCacheFactory();
+    private static FileChannel cacheDirChannel;
     private static FileLock cacheDirLock;
 
@@ -118,5 +119,6 @@
                         Logging.warn("Cannot create cache dir lock file");
                     }
-                    cacheDirLock = FileChannel.open(cacheDirLockPath.toPath(), StandardOpenOption.WRITE).tryLock();
+                    cacheDirChannel = FileChannel.open(cacheDirLockPath.toPath(), StandardOpenOption.WRITE);
+                    cacheDirLock = cacheDirChannel.tryLock();
 
                     if (cacheDirLock == null)
@@ -220,4 +222,12 @@
      */
     public static void shutdown() {
+        try {
+            if (cacheDirLock != null)
+                cacheDirLock.release();
+            if (cacheDirChannel != null)
+                cacheDirChannel.close();
+        } catch (IOException e) {
+            Logging.error(e);
+        }
         JCS.shutdown();
     }
