Program: 153569
Project: 153569
Buggy source:
/** 
 * if returning body has sibling then call get with sibling call automatically.
 */
@Override public RiakFuture put(final RiakObject<byte[]> content,final PutOptions options,final SiblingHandler handler){
  notNull(content,"String_Node_Str");
  notNull(options,"String_Node_Str");
  notNull(handler,"String_Node_Str");
  HttpRequest request=this.factory.newPutRequest(content,options);
  final String procedure="String_Node_Str";
  return handle(procedure,request,handler,new NettyUtil.MessageHandler(){
    @Override public boolean handle(    Object receive) throws Exception {
      if (receive instanceof HttpResponse) {
        HttpResponse response=(HttpResponse)receive;
        if (NettyUtil.isSuccessful(response.getStatus())) {
          try {
            handler.begin();
            RiakObject<byte[]> ro=RestRiakOperations.this.factory.convert(response,response.getContent(),content.getLocation());
            handler.handle(RestRiakOperations.this.support.newResponse(ro));
          }
  finally {
            handler.end(RestRiakOperations.this.support.newResponse());
          }
        }
 else         if (response.getStatus().getCode() == 300) {
          dispatchToGetSibling(content.getLocation(),options,handler);
        }
        return true;
      }
      return false;
    }
  }
);
}

Fixed version (ground truth):
/** 
 * if returning body has sibling then call get with sibling call automatically.
 */
@Override public RiakFuture put(final RiakObject<byte[]> content,final PutOptions options,final SiblingHandler handler){
  notNull(content,"String_Node_Str");
  notNull(options,"String_Node_Str");
  notNull(handler,"String_Node_Str");
  HttpRequest request=this.factory.newPutRequest(content,options);
  final String procedure="String_Node_Str";
  final CountDownRiakFuture future=this.support.newRiakFuture(procedure);
  ChannelHandler internal=new AbstractCompletionChannelHandler<RiakObject<byte[]>>(this.support,procedure,handler,future){
    @Override public void messageReceived(    ChannelHandlerContext ctx,    MessageEvent e) throws Exception {
      Object receive=e.getMessage();
      if (receive instanceof HttpResponse) {
        HttpResponse response=(HttpResponse)receive;
        if (NettyUtil.isError(response.getStatus())) {
          handler.onError(new RestErrorResponse(response,RestRiakOperations.this.support));
          future.finished();
        }
 else         if (NettyUtil.isSuccessful(response.getStatus())) {
          try {
            handler.begin();
            RiakObject<byte[]> ro=content;
            if (options.getReturnBody()) {
              ro=RestRiakOperations.this.factory.convert(response,response.getContent(),content.getLocation());
            }
            handler.handle(RestRiakOperations.this.support.newResponse(ro));
          }
  finally {
            handler.end(RestRiakOperations.this.support.newResponse());
            RestRiakOperations.this.support.remove(procedure);
          }
          future.setSuccess();
        }
 else         if (response.getStatus().getCode() == 300) {
          RestRiakOperations.this.support.remove(procedure);
          ChannelPipeline pipeline=ctx.getPipeline();
          pipeline.remove(procedure);
          dispatchToGetSibling(content.getLocation(),options,handler,future);
        }
      }
    }
  }
;
  return this.support.handle(procedure,request,handler,internal,future);
}