Program: 62905
Project: 62905
Buggy source:
@Override public void onPacket(final FramePacket pack,final CompleteHandler handler){
  FutureImpl<FramePacket> future=null;
  String packid=null;
  if (pack.isSync()) {
    packid=genPackID();
    if (pack.getExtHead().isExist(packIDKey)) {
      String expackid=pack.getExtStrProp(packIDKey);
      future=packMaps.remove(expackid);
      if (future != null) {
        pack.getExtHead().remove(packIDKey);
        future.result(pack);
      }
 else {
        log.warn("String_Node_Str" + expackid + "String_Node_Str"+ this.getModule()+ "String_Node_Str"+ pack.getExtProp(packIDKey));
        handler.onFinished(PacketHelper.toPBReturn(pack,new LoopPackBody(packIDKey,pack)));
      }
      return;
    }
    future=Futures.createSafeFuture();
    pack.putHeader(packIDKey,packid);
    packMaps.put(packid,future);
    log.debug("String_Node_Str" + packid + "String_Node_Str"+ mss.currentNodeID+ "String_Node_Str"+ this+ "String_Node_Str"+ packMaps.size());
  }
 else {
    log.debug("String_Node_Str" + "String_Node_Str" + mss.currentNodeID + "String_Node_Str"+ this+ "String_Node_Str"+ packMaps.size());
  }
  for (int i=0; i < 3; i++) {
    try {
      Connection conn=connsPool.get();
      if (conn != null) {
        connsPool.get().write(pack);
        break;
      }
 else {
        Thread.sleep(100);
      }
    }
 catch (    Exception e) {
      log.error("String_Node_Str" + pack,e);
      if (packid != null) {
        packMaps.remove(packid);
      }
      throw new MessageException(e);
    }
  }
  if (pack.isSync()) {
    future.addCompletionHandler(new CompletionHandler<FramePacket>(){
      @Override public void updated(      FramePacket result){
      }
      @Override public void failed(      Throwable throwable){
        handler.onFinished(PacketHelper.toPBReturn(pack,new SendFailedBody(packIDKey,pack)));
      }
      @Override public void completed(      FramePacket result){
        handler.onFinished(result);
      }
      @Override public void cancelled(){
        handler.onFinished(PacketHelper.toPBReturn(pack,new SendFailedBody(packIDKey,pack)));
      }
    }
);
  }
}

Fixed version (ground truth):
@Override public void onPacket(final FramePacket pack,final CompleteHandler handler){
  FutureImpl<FramePacket> future=null;
  String packid=null;
  if (pack.isSync()) {
    if (pack.getExtHead().isExist(packIDKey)) {
      String expackid=pack.getExtStrProp(packIDKey);
      future=packMaps.remove(expackid);
      if (future != null) {
        Object opackid=pack.getExtHead().remove(packIDKey);
        Object ofrom=pack.getExtHead().remove(OSocketImpl.PACK_FROM);
        Object oto=pack.getExtHead().remove(OSocketImpl.PACK_TO);
        log.debug("String_Node_Str" + ofrom + "String_Node_Str"+ oto+ "String_Node_Str"+ opackid);
        future.result(pack);
      }
 else {
        log.warn("String_Node_Str" + expackid + "String_Node_Str"+ this.getModule()+ "String_Node_Str"+ pack.getExtProp(packIDKey));
        handler.onFinished(PacketHelper.toPBReturn(pack,new LoopPackBody(packIDKey,pack)));
      }
      return;
    }
    packid=genPackID();
    future=Futures.createSafeFuture();
    pack.putHeader(packIDKey,packid);
    packMaps.put(packid,future);
    pack.putHeader(OSocketImpl.PACK_FROM,remoteNodeID);
    future.addCompletionHandler(new CompletionHandler<FramePacket>(){
      @Override public void updated(      FramePacket result){
      }
      @Override public void failed(      Throwable throwable){
        handler.onFinished(PacketHelper.toPBReturn(pack,new SendFailedBody(packIDKey,pack)));
      }
      @Override public void completed(      FramePacket result){
        handler.onFinished(result);
      }
      @Override public void cancelled(){
        handler.onFinished(PacketHelper.toPBReturn(pack,new SendFailedBody(packIDKey,pack)));
      }
    }
);
    log.debug("String_Node_Str" + packid + "String_Node_Str"+ mss.currentNodeID+ "String_Node_Str"+ this+ "String_Node_Str"+ packMaps.size());
  }
 else {
    log.debug("String_Node_Str" + "String_Node_Str" + mss.currentNodeID + "String_Node_Str"+ this+ "String_Node_Str"+ packMaps.size());
  }
  for (int i=0; i < 3; i++) {
    try {
      Connection conn=connsPool.get();
      if (conn != null) {
        connsPool.get().write(pack);
        break;
      }
 else {
        Thread.sleep(100);
      }
    }
 catch (    Exception e) {
      log.error("String_Node_Str" + pack,e);
      if (packid != null) {
        packMaps.remove(packid);
      }
      throw new MessageException(e);
    }
  }
}