Program: 153471
Project: 153471
Buggy source:
protected void dispatchToGetSibling(final Location location,final PutOptions options,final SiblingHandler handler,final CountDownRiakFuture future){
  LOG.debug(Markers.DETAIL,"String_Node_Str");
  GetOptions go=new GetOptions(){
    @Override public Quorum getReadQuorum(){
      return options.getReadQuorum();
    }
    @Override public String getIfNoneMatch(){
      return options.getIfNoneMatch();
    }
    @Override public String getIfMatch(){
      return options.getIfMatch();
    }
    @Override public Date getIfModifiedSince(){
      return options.getIfModifiedSince();
    }
  }
;
  HttpRequest request=this.factory.newGetRequst(location,go);
  request.setHeader(HttpHeaders.Names.ACCEPT,RiakHttpHeaders.MULTI_PART);
  final String procedure="String_Node_Str";
  future.setName(procedure);
  ChannelHandler internal=new AbstractCompletionChannelHandler<RiakObject<byte[]>>(this.support,procedure,handler,future){
    String vclock;
    @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())) {
          try {
            handler.onError(new RestErrorResponse(response));
          }
  finally {
            future.finished();
            RestRiakOperations.this.support.responseComplete();
          }
        }
 else {
          this.vclock=response.getHeader(RiakHttpHeaders.VECTOR_CLOCK);
          handler.begin();
        }
      }
 else       if (receive instanceof PartMessage) {
        PartMessage part=(PartMessage)receive;
        boolean done=part.isLast();
        part.setHeader(RiakHttpHeaders.VECTOR_CLOCK,this.vclock);
        if (done) {
          try {
            handler.end();
            future.setSuccess();
          }
  finally {
            RestRiakOperations.this.support.responseComplete();
          }
        }
 else {
          RiakObject<byte[]> ro=RestRiakOperations.this.factory.convert(part,part.getContent(),location);
          handler.handle(RestRiakOperations.this.support.newResponse(ro));
        }
      }
    }
  }
;
  this.support.handle(procedure,request,handler,internal,future);
}

Fixed version (ground truth):
protected void dispatchToGetSibling(final Location location,final PutOptions options,final SiblingHandler handler,final CountDownRiakFuture future){
  LOG.debug(Markers.DETAIL,"String_Node_Str");
  GetOptions go=new GetOptions(){
    @Override public Quorum getReadQuorum(){
      return options.getReadQuorum();
    }
    @Override public String getIfNoneMatch(){
      return options.getIfNoneMatch();
    }
    @Override public String getIfMatch(){
      return options.getIfMatch();
    }
    @Override public Date getIfModifiedSince(){
      return options.getIfModifiedSince();
    }
  }
;
  HttpRequest request=this.factory.newGetRequst(location,go);
  request.setHeader(HttpHeaders.Names.ACCEPT,RiakHttpHeaders.MULTI_PART);
  final String procedure="String_Node_Str";
  future.setName(procedure);
  ChannelHandler internal=new AbstractCompletionChannelHandler<RiakObject<byte[]>>(this.support,procedure,handler,future){
    String vclock;
    Exception failed;
    @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())) {
          try {
            handler.onError(new RestErrorResponse(response));
          }
  finally {
            future.finished();
            RestRiakOperations.this.support.responseComplete();
          }
        }
 else {
          this.vclock=response.getHeader(RiakHttpHeaders.VECTOR_CLOCK);
          handler.begin();
        }
      }
 else       if (receive instanceof PartMessage) {
        PartMessage part=(PartMessage)receive;
        boolean done=part.isLast();
        part.setHeader(RiakHttpHeaders.VECTOR_CLOCK,this.vclock);
        if (done) {
          try {
            handler.end();
            if (this.failed == null) {
              future.setSuccess();
            }
 else {
              future.setFailure(this.failed);
            }
          }
  finally {
            RestRiakOperations.this.support.responseComplete();
          }
        }
 else {
          RiakObject<byte[]> ro=RestRiakOperations.this.factory.convert(part,part.getContent(),location);
          try {
            handler.handle(RestRiakOperations.this.support.newResponse(ro));
          }
 catch (          Exception ex) {
            this.failed=ex;
            LOG.error(Markers.DESIGN,ex.getMessage(),ex);
          }
        }
      }
    }
  }
;
  this.support.handle(procedure,request,handler,internal,future);
}