Return-Path: X-Original-To: apmail-zookeeper-commits-archive@www.apache.org Delivered-To: apmail-zookeeper-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C2B66106BB for ; Tue, 4 Mar 2014 08:21:16 +0000 (UTC) Received: (qmail 13505 invoked by uid 500); 4 Mar 2014 08:21:16 -0000 Delivered-To: apmail-zookeeper-commits-archive@zookeeper.apache.org Received: (qmail 13313 invoked by uid 500); 4 Mar 2014 08:21:01 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 13200 invoked by uid 99); 4 Mar 2014 08:20:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Mar 2014 08:20:56 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Mar 2014 08:20:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id D5348238890D; Tue, 4 Mar 2014 08:20:31 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1573930 - in /zookeeper/bookkeeper/branches/branch-4.2: CHANGES.txt bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java Date: Tue, 04 Mar 2014 08:20:31 -0000 To: commits@zookeeper.apache.org From: sijie@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140304082031.D5348238890D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: sijie Date: Tue Mar 4 08:20:31 2014 New Revision: 1573930 URL: http://svn.apache.org/r1573930 Log: BOOKKEEPER-688: NPE exception in PerChannelBookieClient (ivank via sijie) Modified: zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java Modified: zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt?rev=1573930&r1=1573929&r2=1573930&view=diff ============================================================================== --- zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt (original) +++ zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt Tue Mar 4 08:20:31 2014 @@ -10,6 +10,8 @@ Release 4.2.3 - 2013-12-04 BOOKKEEPER-712: bookkeeper script should use 'java' from JAVA_HOME (vinay via sijie) + BOOKKEEPER-688: NPE exception in PerChannelBookieClient (ivank via sijie) + Release 4.2.2 - 2013-10-02 Backward compatible changes: Modified: zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java?rev=1573930&r1=1573929&r2=1573930&view=diff ============================================================================== --- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java (original) +++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java Tue Mar 4 08:20:31 2014 @@ -255,14 +255,19 @@ public class PerChannelBookieClient exte ChannelBuffer wrappedBuffer = ChannelBuffers.wrappedBuffer(header, toSend); - ChannelFuture future = channel.write(wrappedBuffer); + final Channel c = channel; + if (c == null) { + errorOutReadKey(completionKey); + return; + } + ChannelFuture future = c.write(wrappedBuffer); future.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { if (LOG.isDebugEnabled()) { LOG.debug("Successfully wrote request for adding entry: " + entryId + " ledger-id: " + ledgerId - + " bookie: " + channel.getRemoteAddress() + " entry length: " + entrySize); + + " bookie: " + c.getRemoteAddress() + " entry length: " + entrySize); } // totalBytesOutstanding.addAndGet(entrySize); } else { @@ -298,14 +303,19 @@ public class PerChannelBookieClient exte tmpEntry.writeLong(entryId); tmpEntry.writeBytes(masterKey, 0, BookieProtocol.MASTER_KEY_LENGTH); - ChannelFuture future = channel.write(tmpEntry); + final Channel c = channel; + if (c == null) { + errorOutReadKey(key); + return; + } + ChannelFuture future = c.write(tmpEntry); future.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { if (LOG.isDebugEnabled()) { LOG.debug("Successfully wrote request for reading entry: " + entryId + " ledger-id: " - + ledgerId + " bookie: " + channel.getRemoteAddress()); + + ledgerId + " bookie: " + c.getRemoteAddress()); } } else { errorOutReadKey(key); @@ -332,14 +342,19 @@ public class PerChannelBookieClient exte tmpEntry.writeLong(ledgerId); tmpEntry.writeLong(entryId); - ChannelFuture future = channel.write(tmpEntry); + final Channel c = channel; + if (c == null) { + errorOutReadKey(key); + return; + } + ChannelFuture future = c.write(tmpEntry); future.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { if (LOG.isDebugEnabled()) { LOG.debug("Successfully wrote request for reading entry: " + entryId + " ledger-id: " - + ledgerId + " bookie: " + channel.getRemoteAddress()); + + ledgerId + " bookie: " + c.getRemoteAddress()); } } else { errorOutReadKey(key);