Program: 3796
Project: 3796
Buggy source:
public BaseServiceQueueImpl(final String rootAddress,final String serviceAddress,final Object service,final QueueBuilder requestQueueBuilder,final QueueBuilder responseQueueBuilder,final ServiceMethodHandler serviceMethodHandler,final Queue<Response<Object>> responseQueue,final boolean async,final boolean handleCallbacks,final QBitSystemManager systemManager,final BeforeMethodCall beforeMethodCall,final BeforeMethodCall beforeMethodCallAfterTransform,final AfterMethodCall afterMethodCall,final AfterMethodCall afterMethodCallAfterTransform,final QueueCallBackHandler queueCallBackHandler,final CallbackManager callbackManager,final BeforeMethodSent beforeMethodSent,final EventManager eventManager){
  this.eventManager=Optional.ofNullable(eventManager);
  this.beforeMethodSent=beforeMethodSent;
  this.beforeMethodCall=beforeMethodCall;
  this.beforeMethodCallAfterTransform=beforeMethodCallAfterTransform;
  this.afterMethodCall=afterMethodCall;
  this.afterMethodCallAfterTransform=afterMethodCallAfterTransform;
  this.callbackManager=callbackManager;
  if (queueCallBackHandler == null) {
    this.queueCallBackHandler=new QueueCallBackHandler(){
      @Override public void queueLimit(){
      }
      @Override public void queueEmpty(){
      }
    }
;
  }
 else {
    this.queueCallBackHandler=queueCallBackHandler;
  }
  if (requestQueueBuilder == null) {
    this.requestQueueBuilder=new QueueBuilder();
  }
 else {
    this.requestQueueBuilder=BeanUtils.copy(requestQueueBuilder);
  }
  if (responseQueueBuilder == null) {
    this.responseQueueBuilder=new QueueBuilder();
  }
 else {
    this.responseQueueBuilder=BeanUtils.copy(responseQueueBuilder);
  }
  if (responseQueue == null) {
    logger.info("String_Node_Str");
    this.responseQueue=this.responseQueueBuilder.setName("String_Node_Str" + serviceMethodHandler.address()).build();
  }
 else {
    this.responseQueue=responseQueue;
  }
  this.responseSendQueue=this.responseQueue.sendQueueWithAutoFlush(100,TimeUnit.MILLISECONDS);
  this.service=service;
  this.serviceMethodHandler=serviceMethodHandler;
  this.serviceMethodHandler.init(service,rootAddress,serviceAddress,responseSendQueue);
  this.eventQueue=this.requestQueueBuilder.setName("String_Node_Str" + serviceMethodHandler.address()).build();
  this.handleCallbacks=handleCallbacks;
  this.requestQueue=initRequestQueue(serviceMethodHandler,async);
  this.systemManager=systemManager;
  this.factory=factory();
  this.eventManager.ifPresent(em -> {
    em.joinService(BaseServiceQueueImpl.this);
  }
);
}

Fixed version (ground truth):
public BaseServiceQueueImpl(final String rootAddress,final String serviceAddress,final Object service,final QueueBuilder requestQueueBuilder,final QueueBuilder responseQueueBuilder,final ServiceMethodHandler serviceMethodHandler,final Queue<Response<Object>> responseQueue,final boolean async,final boolean handleCallbacks,final QBitSystemManager systemManager,final BeforeMethodCall beforeMethodCall,final BeforeMethodCall beforeMethodCallAfterTransform,final AfterMethodCall afterMethodCall,final AfterMethodCall afterMethodCallAfterTransform,final QueueCallBackHandler queueCallBackHandler,final CallbackManager callbackManager,final BeforeMethodSent beforeMethodSent,final EventManager eventManager,final boolean joinEventManager){
  this.eventManager=Optional.ofNullable(eventManager);
  this.joinEventManager=joinEventManager;
  this.beforeMethodSent=beforeMethodSent;
  this.beforeMethodCall=beforeMethodCall;
  this.beforeMethodCallAfterTransform=beforeMethodCallAfterTransform;
  this.afterMethodCall=afterMethodCall;
  this.afterMethodCallAfterTransform=afterMethodCallAfterTransform;
  this.callbackManager=callbackManager;
  if (queueCallBackHandler == null) {
    this.queueCallBackHandler=new QueueCallBackHandler(){
      @Override public void queueLimit(){
      }
      @Override public void queueEmpty(){
      }
    }
;
  }
 else {
    this.queueCallBackHandler=queueCallBackHandler;
  }
  if (requestQueueBuilder == null) {
    this.requestQueueBuilder=new QueueBuilder();
  }
 else {
    this.requestQueueBuilder=BeanUtils.copy(requestQueueBuilder);
  }
  if (responseQueueBuilder == null) {
    this.responseQueueBuilder=new QueueBuilder();
  }
 else {
    this.responseQueueBuilder=BeanUtils.copy(responseQueueBuilder);
  }
  if (responseQueue == null) {
    logger.info("String_Node_Str");
    this.responseQueue=this.responseQueueBuilder.setName("String_Node_Str" + serviceMethodHandler.address()).build();
  }
 else {
    this.responseQueue=responseQueue;
  }
  this.responseSendQueue=this.responseQueue.sendQueueWithAutoFlush(100,TimeUnit.MILLISECONDS);
  this.service=service;
  this.serviceMethodHandler=serviceMethodHandler;
  this.serviceMethodHandler.init(service,rootAddress,serviceAddress,responseSendQueue);
  this.eventQueue=this.requestQueueBuilder.setName("String_Node_Str" + serviceMethodHandler.address()).build();
  this.handleCallbacks=handleCallbacks;
  this.requestQueue=initRequestQueue(serviceMethodHandler,async);
  this.systemManager=systemManager;
  this.factory=factory();
  this.eventManager.ifPresent(em -> {
    em.joinService(BaseServiceQueueImpl.this);
  }
);
}