Program: 14891
Project: 14891
Buggy source:
protected AsyncRequest(final TwiceChecked<Q,R> cb){
  super();
  this.result=new AsyncResponseFuture<R>();
  this.requestResult=new AsyncResponseFuture<R>();
  this.handler=new AsyncRequestHandler<Q,R>(this.requestResult);
  this.callbackSequence=new CallbackListenerSequence<R>();
  this.cb=cb;
  this.wrapperCallback=new TwiceChecked<Q,R>(){
    @Override public void fireException(    Throwable t){
      try {
        cb.fireException(t);
        AsyncRequest.this.result.setException(t);
      }
 catch (      Exception ex) {
        AsyncRequest.this.result.setException(t);
        LOG.error(ex,ex);
      }
      try {
        AsyncRequest.this.callbackSequence.fireException(t);
      }
 catch (      Exception ex) {
        LOG.error(ex,ex);
      }
    }
    @Override public void fire(    R r){
      try {
        if (Logs.isExtrrreeeme()) {
          Logs.exhaust().debug(cb.getClass().getCanonicalName() + "String_Node_Str" + r);
        }
        cb.fire(r);
        AsyncRequest.this.result.set(r);
        try {
          AsyncRequest.this.callbackSequence.fire(r);
        }
 catch (        Exception ex) {
          LOG.error(ex,ex);
          AsyncRequest.this.result.setException(ex);
        }
      }
 catch (      RuntimeException ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
catch (      Exception ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
    @Override public void initialize(    Q request) throws Exception {
      if (Logs.isExtrrreeeme()) {
        Logs.exhaust().debug(cb.getClass().getCanonicalName() + "String_Node_Str" + request);
      }
      try {
        cb.initialize(request);
      }
 catch (      Exception ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
  }
;
  Callbacks.addListenerHandler(requestResult,this.wrapperCallback);
}

Fixed version (ground truth):
protected AsyncRequest(final TwiceChecked<Q,R> cb){
  super();
  this.result=new AsyncResponseFuture<R>();
  this.requestResult=new AsyncResponseFuture<R>();
  this.handler=new AsyncRequestHandler<Q,R>(this.requestResult);
  this.callbackSequence=new CallbackListenerSequence<R>();
  this.cb=cb;
  this.wrapperCallback=new TwiceChecked<Q,R>(){
    @Override public void fireException(    Throwable t){
      try {
        cb.fireException(t);
        AsyncRequest.this.result.setException(t);
      }
 catch (      Exception ex) {
        AsyncRequest.this.result.setException(t);
        LOG.error(ex,ex);
      }
      try {
        AsyncRequest.this.callbackSequence.fireException(t);
      }
 catch (      Exception ex) {
        LOG.error(ex,ex);
      }
    }
    @Override public void fire(    R r){
      try {
        if (Logs.isExtrrreeeme()) {
          Logs.exhaust().debug(cb.getClass().getCanonicalName() + "String_Node_Str" + r);
        }
        cb.fire(r);
        AsyncRequest.this.result.set(r);
        try {
          AsyncRequest.this.callbackSequence.fire(r);
        }
 catch (        Exception ex) {
          LOG.error(ex,ex);
          AsyncRequest.this.result.setException(ex);
        }
      }
 catch (      RuntimeException ex) {
        LOG.error(ex,ex);
        try {
          cb.fireException(ex);
        }
 catch (        Exception ex1) {
          LOG.error(ex1,ex1);
        }
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
catch (      Exception ex) {
        LOG.error(ex,ex);
        try {
          cb.fireException(ex);
        }
 catch (        Exception ex1) {
          LOG.error(ex1,ex1);
        }
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
    @Override public void initialize(    Q request) throws Exception {
      if (Logs.isExtrrreeeme()) {
        Logs.exhaust().debug(cb.getClass().getCanonicalName() + "String_Node_Str" + request);
      }
      try {
        cb.initialize(request);
      }
 catch (      Exception ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
  }
;
  Callbacks.addListenerHandler(requestResult,this.wrapperCallback);
}