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 2013/10/22 07:35:47 UTC
svn commit: r1534498 - in /zookeeper/bookkeeper/trunk: CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
Author: sijie
Date: Tue Oct 22 05:35:46 2013
New Revision: 1534498
URL: http://svn.apache.org/r1534498
Log:
BOOKKEEPER-688: NPE exception in PerChannelBookieClient (ivank via sijie)
Modified:
zookeeper/bookkeeper/trunk/CHANGES.txt
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1534498&r1=1534497&r2=1534498&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Tue Oct 22 05:35:46 2013
@@ -112,6 +112,8 @@ Trunk (unreleased changes)
BOOKKEEPER-673: Ledger length can be inaccurate in failure case (sijie via ivank)
+ BOOKKEEPER-688: NPE exception in PerChannelBookieClient (ivank via sijie)
+
hedwig-server:
BOOKKEEPER-601: readahead cache size isn't updated correctly (sijie via fpj)
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java?rev=1534498&r1=1534497&r2=1534498&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java Tue Oct 22 05:35:46 2013
@@ -238,15 +238,20 @@ public class PerChannelBookieClient exte
final int entrySize = toSend.readableBytes();
final CompletionKey completionKey = new CompletionKey(ledgerId, entryId);
addCompletions.put(completionKey, new AddCompletion(cb, entrySize, ctx));
+ final Channel c = channel;
+ if (c == null) {
+ errorOutAddKey(completionKey);
+ return;
+ }
try {
- ChannelFuture future = channel.write(r);
+ ChannelFuture future = c.write(r);
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 {
@@ -270,15 +275,21 @@ public class PerChannelBookieClient exte
BookieProtocol.CURRENT_PROTOCOL_VERSION, ledgerId, entryId,
BookieProtocol.FLAG_DO_FENCING, masterKey);
+ final Channel c = channel;
+ if (c == null) {
+ errorOutReadKey(key);
+ return;
+ }
+
try {
- ChannelFuture future = channel.write(r);
+ ChannelFuture future = c.write(r);
future.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
if (future.isSuccess()) {
if (LOG.isDebugEnabled()) {
LOG.debug("Successfully wrote request {} to {}",
- r, channel.getRemoteAddress());
+ r, c.getRemoteAddress());
}
} else {
errorOutReadKey(key);
@@ -299,15 +310,21 @@ public class PerChannelBookieClient exte
BookieProtocol.CURRENT_PROTOCOL_VERSION, ledgerId, entryId,
BookieProtocol.FLAG_NONE);
+ final Channel c = channel;
+ if (c == null) {
+ errorOutReadKey(key);
+ return;
+ }
+
try{
- ChannelFuture future = channel.write(r);
+ ChannelFuture future = c.write(r);
future.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
if (future.isSuccess()) {
if (LOG.isDebugEnabled()) {
LOG.debug("Successfully wrote request {} to {}",
- r, channel.getRemoteAddress());
+ r, c.getRemoteAddress());
}
} else {
errorOutReadKey(key);