Program: 15387
Project: 15387
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.callback=new TwiceChecked<Q,R>(){
    @Override public void fireException(    Throwable t){
      try {
        cb.fireException(t);
        AsyncRequest.this.result.setException(t);
      }
 catch (      Throwable ex) {
        AsyncRequest.this.result.setException(ex);
        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.EXTREME) {
          LOG.debug(cb.getClass().getCanonicalName() + "String_Node_Str" + r);
        }
        cb.fire(r);
        try {
          AsyncRequest.this.result.set(r);
          AsyncRequest.this.callbackSequence.fire(r);
        }
 catch (        Throwable ex) {
          AsyncRequest.this.result.setException(ex);
          LOG.error(ex,ex);
        }
      }
 catch (      RuntimeException ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
catch (      Exception ex) {
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
    @Override public void initialize(    Q request) throws Exception {
      if (Logs.EXTREME) {
        LOG.debug(cb.getClass().getCanonicalName() + "String_Node_Str" + request);
      }
    }
  }
;
  Callbacks.addListenerHandler(requestResult,this.callback);
}

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.callback=new TwiceChecked<Q,R>(){
    @Override public void fireException(    Throwable t){
      try {
        cb.fireException(t);
        AsyncRequest.this.result.setException(t);
      }
 catch (      Throwable 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.EXTREME) {
          LOG.debug(cb.getClass().getCanonicalName() + "String_Node_Str" + r);
        }
        cb.fire(r);
        try {
          AsyncRequest.this.result.set(r);
          AsyncRequest.this.callbackSequence.fire(r);
        }
 catch (        Throwable ex) {
          AsyncRequest.this.result.setException(ex);
          LOG.error(ex,ex);
        }
      }
 catch (      RuntimeException ex) {
        LOG.error(ex,ex);
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
catch (      Exception ex) {
        AsyncRequest.this.result.setException(ex);
        AsyncRequest.this.callbackSequence.fireException(ex);
      }
    }
    @Override public void initialize(    Q request) throws Exception {
      if (Logs.EXTREME) {
        LOG.debug(cb.getClass().getCanonicalName() + "String_Node_Str" + request);
      }
    }
  }
;
  Callbacks.addListenerHandler(requestResult,this.callback);
}