[jboss-svn-commits] JBoss Common SVN: r3081 - in jboss-logmanager/trunk/src: test/java/org/jboss/logmanager and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 13 00:33:46 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-03-13 00:33:46 -0400 (Fri, 13 Mar 2009)
New Revision: 3081

Modified:
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/Logger.java
   jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/LoggerTests.java
Log:
Fix multiple-add behavior to match the JDK impl (the details of which are undocumented)

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/Logger.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/Logger.java	2009-03-13 03:43:17 UTC (rev 3080)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/Logger.java	2009-03-13 04:33:46 UTC (rev 3081)
@@ -204,11 +204,7 @@
                 final int len = oldHandlers.length;
                 newHandlers = new Handler[len + 1];
                 final int pos = Arrays.binarySearch(oldHandlers, handler, IHC_COMPARATOR);
-                if (pos >= 0) {
-                    // already in there!
-                    return;
-                }
-                final int ip = -pos - 1;
+                final int ip = pos < 0 ? -pos - 1 : pos;
                 newHandlers[ip] = handler;
                 System.arraycopy(oldHandlers, 0, newHandlers, 0, ip);
                 System.arraycopy(oldHandlers, ip, newHandlers, ip + 1, len - ip);

Modified: jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/LoggerTests.java
===================================================================
--- jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/LoggerTests.java	2009-03-13 03:43:17 UTC (rev 3080)
+++ jboss-logmanager/trunk/src/test/java/org/jboss/logmanager/LoggerTests.java	2009-03-13 04:33:46 UTC (rev 3081)
@@ -59,6 +59,21 @@
         assertTrue("Handler 3 missing", f3);
     }
 
+    public void testHandlerAdd2() {
+        final NullHandler h1 = new NullHandler();
+        final Logger logger = Logger.getLogger("testHandlerAdd2");
+        logger.addHandler(h1);
+        logger.addHandler(h1);
+        logger.addHandler(h1);
+        boolean f1 = false;
+        final Handler[] handlers = logger.getHandlers();
+        for (Handler handler : handlers) {
+            if (handler == h1) f1 = true;
+        }
+        assertTrue("Handler 1 missing", f1);
+        assertEquals("Extra handlers missing", 3, handlers.length);
+    }
+
     public void testHandlerRemove() {
         final NullHandler h1 = new NullHandler();
         final NullHandler h2 = new NullHandler();




More information about the jboss-svn-commits mailing list