You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by es...@apache.org on 2011/12/29 00:13:12 UTC

svn commit: r1225379 - /incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java

Author: esammer
Date: Wed Dec 28 23:13:11 2011
New Revision: 1225379

URL: http://svn.apache.org/viewvc?rev=1225379&view=rev
Log:
FLUME-909: org.apache.flume.node.TestAbstractLogicalNodeManager is failing on some machines

(Bruno Mahé via E. Sammer)

Modified:
    incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java

Modified: incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java?rev=1225379&r1=1225378&r2=1225379&view=diff
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java (original)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java Wed Dec 28 23:13:11 2011
@@ -122,8 +122,11 @@ public class MemoryChannel implements Ch
       if (putStamp != 0) {
         lastCommitStamp.set(putStamp);
         lock.lock();
-        hasData.signal();
-        lock.unlock();
+        try {
+          hasData.signal();
+        } finally {
+          lock.unlock();
+        }
       }
       txnState = TransactionState.Committed;
       undoPutList.clear();
@@ -298,8 +301,11 @@ public class MemoryChannel implements Ch
       // wait for some committed data be there in the queue
       if ((timeout > 0) && (myTxn.lastTakeStamp() == lastCommitStamp.get())) {
         lock.lock();
-        hasData.await(timeout, TimeUnit.SECONDS);
-        lock.unlock();
+        try {
+          hasData.await(timeout, TimeUnit.SECONDS);
+        } finally {
+          lock.unlock();
+        }
         timeout = 0; // don't wait any further
       }