From 4622a67f9e298d6ee9e28cbccf7ca2b4321e2322 Mon Sep 17 00:00:00 2001 From: Knut Forkalsrud Date: Fri, 5 Feb 2010 23:27:40 -0800 Subject: [PATCH] workaround for Resin logging bug (handlers array is null instead of empty) --- .../forkalsrud/album/web/AlbumServlet.java | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/src/org/forkalsrud/album/web/AlbumServlet.java b/src/org/forkalsrud/album/web/AlbumServlet.java index b029e42..979c931 100644 --- a/src/org/forkalsrud/album/web/AlbumServlet.java +++ b/src/org/forkalsrud/album/web/AlbumServlet.java @@ -2,9 +2,13 @@ package org.forkalsrud.album.web; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Properties; +import java.util.logging.Handler; +import java.util.logging.LogRecord; +import java.util.logging.Logger; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -22,7 +26,52 @@ import org.forkalsrud.album.exif.Thumbnail; public class AlbumServlet extends HttpServlet { - File base; + + + static void addDummyLoggerFor(String... names) { + for (String name : names) + try { + Logger ll = Logger.getLogger(name); + Handler[] hh = ll.getHandlers(); + if (hh == null) { + ll.addHandler(new Handler() { + + @Override + public void close() throws SecurityException { + // + } + + @Override + public void flush() { + // + } + + @Override + public void publish(LogRecord record) { + // + System.out.println(record.getMessage()); + } + }); + } + hh = ll.getHandlers(); + System.out.println((Arrays.asList(hh))); +// new FileHandler("album.log", 5*1024*1024, 10, true)); + } catch (Exception e) { + e.printStackTrace(); + } + } + static { + addDummyLoggerFor("com.sleepycat.je.evictor.PrivateEvictor", + "com.sleepycat.je.dbi.EnvironmentImpl", + "com.sleepycat.je.recovery.Checkpointer", + "com.sleepycat.je.incomp.INCompressor", + "com.sleepycat.je.cleaner.UtilizationProfile", + "com.sleepycat.je.cleaner.Cleaner", + "com.sleepycat.je.cleaner.FileProcessor", + "com.sleepycat.je.recovery.RecoveryManager"); + } + + File base; String basePrefix; // Cache imageCache; // CacheManager cacheManager;