svn commit: r2139 - logback/trunk/logback-core/src/main/java/ch/qos/logback/core/spi

Author: ceki Date: Tue Feb 3 22:19:51 2009 New Revision: 2139 Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/spi/AppenderAttachableImpl.java Log: Use the recommended idion for j.u.c.locks Lock. See also http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/Lock.html This issue was discussed on the logback-dev list in Feb 2009 under the subject "IllegalMonitorStateException inAppenderAttachableImpl.appendLoopOnAppenders()" Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/spi/AppenderAttachableImpl.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/spi/AppenderAttachableImpl.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/spi/AppenderAttachableImpl.java Tue Feb 3 22:19:51 2009 @@ -39,8 +39,8 @@ if (newAppender == null) { throw new IllegalArgumentException("Null argument disallowed"); } + w.lock(); try { - w.lock(); if (!appenderList.contains(newAppender)) { appenderList.add(newAppender); } @@ -54,8 +54,8 @@ */ public int appendLoopOnAppenders(E e) { int size = 0; + r.lock(); try { - r.lock(); for (Appender<E> appender : appenderList) { appender.doAppend(e); size++; @@ -74,8 +74,8 @@ */ public Iterator<Appender<E>> iteratorForAppenders() { List<Appender<E>> copy; + r.lock(); try { - r.lock(); copy = new ArrayList<Appender<E>>(appenderList); } finally { r.unlock(); @@ -96,8 +96,8 @@ } Appender<E> found = null; + r.lock(); try { - r.lock(); for (Appender<E> appender : appenderList) { if (name.equals(appender.getName())) { found = appender; @@ -121,8 +121,8 @@ return false; } boolean attached = false; + r.lock(); try { - r.lock(); for (Appender<E> a : appenderList) { if (a == appender) { attached = true; @@ -139,8 +139,8 @@ * Remove and stop all previously attached appenders. */ public void detachAndStopAllAppenders() { + w.lock(); try { - w.lock(); for (Appender<E> a : appenderList) { a.stop(); } @@ -159,8 +159,8 @@ return false; } boolean result; + w.lock(); try { - w.lock(); result = appenderList.remove(appender); } finally { w.unlock(); @@ -177,8 +177,8 @@ return false; } boolean removed = false; + w.lock(); try { - w.lock(); for (Appender<E> a : appenderList) { if (name.equals((a).getName())) { removed = appenderList.remove(a);
participants (1)
-
noreply.ceki@qos.ch