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 2014/03/04 09:20:31 UTC
svn commit: r1573930 - in /zookeeper/bookkeeper/branches/branch-4.2:
CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
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);