[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