Program: 153508
Project: 153508
Buggy source:
@Ignore @Test public void testMove() throws Exception {
  final boolean[] is={false};
  final String from="String_Node_Str";
  final String to="String_Node_Str";
  for (int i=0; i < 10; i++) {
    testPut(new Location(from,String.valueOf(i)),"String_Node_Str" + i);
  }
  RiakFuture waiter=this.target.listKeys(from,new RiakResponseHandler<KeyResponse>(){
    @Override public void onError(    RiakResponse response) throws Exception {
      response.operationComplete();
      fail(response.getMessage());
    }
    @Override public void handle(    RiakContentsResponse<KeyResponse> response) throws Exception {
      KeyResponse kr=response.getContents();
      if (kr.getDone()) {
        return;
      }
      final AtomicInteger counter=new AtomicInteger(kr.getKeys().size());
      for (      final String k : kr.getKeys()) {
        RiakFuture deleteRF=RiakOperationsTest.this.target.delete(new Location(from,k),new RiakResponseHandler<_>(){
          @Override public void onError(          RiakResponse response) throws Exception {
            fail(response.getMessage());
          }
          @Override public void handle(          RiakContentsResponse<_> response) throws Exception {
            DefaultRiakObject ro=new DefaultRiakObject(new Location(to,k));
            ro.setContent("String_Node_Str".getBytes());
            RiakFuture putRF=RiakOperationsTest.this.target.put(ro,new RiakResponseHandler<_>(){
              @Override public void onError(              RiakResponse response) throws Exception {
                fail(response.getMessage());
              }
              @Override public void handle(              RiakContentsResponse<_> response) throws Exception {
                int i=counter.decrementAndGet();
                if (i < 1) {
                  is[0]=true;
                }
              }
            }
);
            putRF.await(3,TimeUnit.SECONDS);
          }
        }
);
        deleteRF.await(3,TimeUnit.SECONDS);
      }
    }
  }
);
  try {
    assertTrue("String_Node_Str",waiter.await(20,TimeUnit.SECONDS));
    assertTrue(is[0]);
  }
  finally {
    for (int i=0; i < 10; i++) {
      testDelete(new Location(from,String.valueOf(i)));
      testDelete(new Location(to,String.valueOf(i)));
    }
  }
}

Fixed version (ground truth):
@Ignore @Test public void testMove() throws Exception {
  final boolean[] is={false};
  final String from="String_Node_Str";
  final String to="String_Node_Str";
  for (int i=0; i < 10; i++) {
    testPut(new Location(from,String.valueOf(i)),"String_Node_Str" + i);
  }
  RiakFuture waiter=this.target.listKeys(from,new RiakResponseHandler<KeyResponse>(){
    @Override public void onError(    RiakResponse response) throws Exception {
      fail(response.getMessage());
    }
    @Override public void handle(    RiakContentsResponse<KeyResponse> response) throws Exception {
      KeyResponse kr=response.getContents();
      if (kr.getDone()) {
        return;
      }
      final AtomicInteger counter=new AtomicInteger(kr.getKeys().size());
      for (      final String k : kr.getKeys()) {
        RiakFuture deleteRF=RiakOperationsTest.this.target.delete(new Location(from,k),new RiakResponseHandler<_>(){
          @Override public void onError(          RiakResponse response) throws Exception {
            fail(response.getMessage());
          }
          @Override public void handle(          RiakContentsResponse<_> response) throws Exception {
            DefaultRiakObject ro=new DefaultRiakObject(new Location(to,k));
            ro.setContent("String_Node_Str".getBytes());
            RiakFuture putRF=RiakOperationsTest.this.target.put(ro,new RiakResponseHandler<_>(){
              @Override public void onError(              RiakResponse response) throws Exception {
                fail(response.getMessage());
              }
              @Override public void handle(              RiakContentsResponse<_> response) throws Exception {
                int i=counter.decrementAndGet();
                if (i < 1) {
                  is[0]=true;
                }
              }
            }
);
            putRF.await(3,TimeUnit.SECONDS);
          }
        }
);
        deleteRF.await(3,TimeUnit.SECONDS);
      }
    }
  }
);
  try {
    assertTrue("String_Node_Str",waiter.await(20,TimeUnit.SECONDS));
    assertTrue(is[0]);
  }
  finally {
    for (int i=0; i < 10; i++) {
      testDelete(new Location(from,String.valueOf(i)));
      testDelete(new Location(to,String.valueOf(i)));
    }
  }
}