You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by si...@apache.org on 2012/07/26 04:32:50 UTC

svn commit: r1365869 - in /zookeeper/bookkeeper/trunk: CHANGES.txt bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java

Author: sijie
Date: Thu Jul 26 02:32:50 2012
New Revision: 1365869

URL: http://svn.apache.org/viewvc?rev=1365869&view=rev
Log:
BOOKKEEPER-349: Entry logger should close all the chennels which are there in Map, instead of closing only current channel. (umamaheswararao via sijie)

Modified:
    zookeeper/bookkeeper/trunk/CHANGES.txt
    zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java

Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1365869&r1=1365868&r2=1365869&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Thu Jul 26 02:32:50 2012
@@ -40,6 +40,8 @@ Trunk (unreleased changes)
 
 	BOOKKEEPER-327: System.currentTimeMillis usage in BookKeeper (uma via fpj)
 
+        BOOKKEEPER-349: Entry logger should close all the chennels which are there in Map, instead of closing only current channel. (umamaheswararao via sijie)
+
       hedwig-client:
 
         BOOKKEEPER-274: Hedwig cpp client library should not link to cppunit which is just used for test. (sijie via ivank)

Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java?rev=1365869&r1=1365868&r2=1365869&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java Thu Jul 26 02:32:50 2012
@@ -38,6 +38,7 @@ import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.slf4j.Logger;
@@ -468,13 +469,21 @@ public class EntryLogger {
         // since logChannel is buffered channel, do flush when shutting down
         try {
             flush();
-            logChannel.getFileChannel().close();
+            for (Entry<Long, BufferedChannel> channelEntry : channels
+                    .entrySet()) {
+                channelEntry.getValue().getFileChannel().close();
+            }
         } catch (IOException ie) {
             // we have no idea how to avoid io exception during shutting down, so just ignore it
             LOG.error("Error flush entry log during shutting down, which may cause entry log corrupted.", ie);
         } finally {
-            if (logChannel.getFileChannel().isOpen()) {
-                IOUtils.close(LOG, logChannel.getFileChannel());
+            for (Entry<Long, BufferedChannel> channelEntry : channels
+                    .entrySet()) {
+                FileChannel fileChannel = channelEntry.getValue()
+                        .getFileChannel();
+                if (fileChannel.isOpen()) {
+                    IOUtils.close(LOG, fileChannel);
+                }
             }
         }
     }