Index: trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 8990)
+++ trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 8991)
@@ -6,5 +6,4 @@
 import java.io.IOException;
 import java.nio.channels.FileLock;
-import java.text.MessageFormat;
 import java.util.Properties;
 import java.util.logging.Handler;
@@ -12,4 +11,5 @@
 import java.util.logging.LogRecord;
 import java.util.logging.Logger;
+import java.util.logging.SimpleFormatter;
 
 import org.apache.commons.jcs.access.CacheAccess;
@@ -76,7 +76,9 @@
         // we need a separate handler from Main's, as we downgrade LEVEL.INFO to DEBUG level
         jcsLog.addHandler(new Handler() {
+            final SimpleFormatter formatter = new SimpleFormatter();
+
             @Override
             public void publish(LogRecord record) {
-                String msg = MessageFormat.format(record.getMessage(), record.getParameters());
+                String msg = formatter.formatMessage(record);
                 if (record.getLevel().intValue() >= Level.SEVERE.intValue()) {
                     Main.error(msg);
Index: trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java	(revision 8991)
+++ trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java	(revision 8991)
@@ -0,0 +1,25 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.cache;
+
+import java.util.logging.Logger;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
+
+public class JCSCacheManagerTest {
+
+    /**
+     * Setup test.
+     */
+    @BeforeClass
+    public static void setUp() {
+        JOSMFixture.createUnitTestFixture().init();
+    }
+
+    @Test
+    public void testLoggingAdaptor12054() throws Exception {
+        JCSCacheManager.getCache("foobar", 1, 0, "foobar"); // cause logging adaptor to be initialized
+        Logger.getLogger("org.apache.commons.jcs").warning("{switch:0}");
+    }
+}
