Program: 112176
Project: 112176
Buggy source:
@PostConstruct public void start(){
  for (  IFhirResourceDao<?> next : myResourceDaos) {
    if (myCtx.getResourceDefinition(next.getResourceType()).getName().equals("String_Node_Str")) {
      mySubscriptionDao=next;
    }
  }
  Validate.notNull(mySubscriptionDao);
  if (myCtx.getVersion().getVersion() == FhirVersionEnum.R4) {
    Validate.notNull(myEventDefinitionDaoR4);
  }
  if (getProcessingChannel() == null) {
    myProcessingExecutorQueue=new LinkedBlockingQueue<>(1000);
    RejectedExecutionHandler rejectedExecutionHandler=new RejectedExecutionHandler(){
      @Override public void rejectedExecution(      Runnable theRunnable,      ThreadPoolExecutor theExecutor){
        ourLog.info("String_Node_Str",myProcessingExecutorQueue.size());
        StopWatch sw=new StopWatch();
        try {
          myProcessingExecutorQueue.put(theRunnable);
        }
 catch (        InterruptedException theE) {
          throw new RejectedExecutionException("String_Node_Str" + theRunnable.toString() + "String_Node_Str"+ theE.toString());
        }
        ourLog.info("String_Node_Str",sw.getMillis());
      }
    }
;
    ThreadFactory threadFactory=new BasicThreadFactory.Builder().namingPattern("String_Node_Str").daemon(false).priority(Thread.NORM_PRIORITY).build();
    myProcessingExecutor=new ThreadPoolExecutor(1,getExecutorThreadCount(),0L,TimeUnit.MILLISECONDS,myProcessingExecutorQueue,threadFactory,rejectedExecutionHandler);
    setProcessingChannel(new ExecutorSubscribableChannel(myProcessingExecutor));
  }
  if (getDeliveryChannel() == null) {
    myDeliveryExecutorQueue=new LinkedBlockingQueue<>(1000);
    BasicThreadFactory threadFactory=new BasicThreadFactory.Builder().namingPattern("String_Node_Str").daemon(false).priority(Thread.NORM_PRIORITY).build();
    RejectedExecutionHandler rejectedExecutionHandler=new RejectedExecutionHandler(){
      @Override public void rejectedExecution(      Runnable theRunnable,      ThreadPoolExecutor theExecutor){
        ourLog.info("String_Node_Str",myDeliveryExecutorQueue.size());
        StopWatch sw=new StopWatch();
        try {
          myDeliveryExecutorQueue.put(theRunnable);
        }
 catch (        InterruptedException theE) {
          throw new RejectedExecutionException("String_Node_Str" + theRunnable.toString() + "String_Node_Str"+ theE.toString());
        }
        ourLog.info("String_Node_Str",sw.getMillis());
      }
    }
;
    myDeliveryExecutor=new ThreadPoolExecutor(1,getExecutorThreadCount(),0L,TimeUnit.MILLISECONDS,myDeliveryExecutorQueue,threadFactory,rejectedExecutionHandler);
    setDeliveryChannel(new ExecutorSubscribableChannel(myDeliveryExecutor));
  }
  if (mySubscriptionActivatingSubscriber == null) {
    mySubscriptionActivatingSubscriber=new SubscriptionActivatingSubscriber(getSubscriptionDao(),getChannelType(),this,myTxManager);
  }
  registerSubscriptionCheckingSubscriber();
  registerDeliverySubscriber();
  TransactionTemplate transactionTemplate=new TransactionTemplate(myTxManager);
  transactionTemplate.execute(new TransactionCallbackWithoutResult(){
    @Override protected void doInTransactionWithoutResult(    TransactionStatus status){
      initSubscriptions();
    }
  }
);
}

Fixed version (ground truth):
@PostConstruct public void start(){
  for (  IFhirResourceDao<?> next : myResourceDaos) {
    if (myCtx.getResourceDefinition(next.getResourceType()).getName().equals("String_Node_Str")) {
      mySubscriptionDao=next;
    }
  }
  Validate.notNull(mySubscriptionDao);
  if (myCtx.getVersion().getVersion() == FhirVersionEnum.R4) {
    Validate.notNull(myEventDefinitionDaoR4);
  }
  if (getProcessingChannel() == null) {
    myProcessingExecutorQueue=new LinkedBlockingQueue<>(1000);
    RejectedExecutionHandler rejectedExecutionHandler=new RejectedExecutionHandler(){
      @Override public void rejectedExecution(      Runnable theRunnable,      ThreadPoolExecutor theExecutor){
        ourLog.info("String_Node_Str",myProcessingExecutorQueue.size());
        StopWatch sw=new StopWatch();
        try {
          myProcessingExecutorQueue.put(theRunnable);
        }
 catch (        InterruptedException theE) {
          throw new RejectedExecutionException("String_Node_Str" + theRunnable.toString() + "String_Node_Str"+ theE.toString());
        }
        ourLog.info("String_Node_Str",sw.getMillis());
      }
    }
;
    ThreadFactory threadFactory=new BasicThreadFactory.Builder().namingPattern("String_Node_Str").daemon(false).priority(Thread.NORM_PRIORITY).build();
    myProcessingExecutor=new ThreadPoolExecutor(1,getExecutorThreadCount(),0L,TimeUnit.MILLISECONDS,myProcessingExecutorQueue,threadFactory,rejectedExecutionHandler);
    setProcessingChannel(new ExecutorSubscribableChannel(myProcessingExecutor));
  }
  if (getDeliveryChannel() == null) {
    myDeliveryExecutorQueue=new LinkedBlockingQueue<>(1000);
    BasicThreadFactory threadFactory=new BasicThreadFactory.Builder().namingPattern("String_Node_Str").daemon(false).priority(Thread.NORM_PRIORITY).build();
    RejectedExecutionHandler rejectedExecutionHandler=new RejectedExecutionHandler(){
      @Override public void rejectedExecution(      Runnable theRunnable,      ThreadPoolExecutor theExecutor){
        ourLog.info("String_Node_Str",myDeliveryExecutorQueue.size());
        StopWatch sw=new StopWatch();
        try {
          myDeliveryExecutorQueue.put(theRunnable);
        }
 catch (        InterruptedException theE) {
          throw new RejectedExecutionException("String_Node_Str" + theRunnable.toString() + "String_Node_Str"+ theE.toString());
        }
        ourLog.info("String_Node_Str",sw.getMillis());
      }
    }
;
    myDeliveryExecutor=new ThreadPoolExecutor(1,getExecutorThreadCount(),0L,TimeUnit.MILLISECONDS,myDeliveryExecutorQueue,threadFactory,rejectedExecutionHandler);
    setDeliveryChannel(new ExecutorSubscribableChannel(myDeliveryExecutor));
  }
  if (mySubscriptionActivatingSubscriber == null) {
    mySubscriptionActivatingSubscriber=new SubscriptionActivatingSubscriber(getSubscriptionDao(),getChannelType(),this,myTxManager,myAsyncTaskExecutor);
  }
  registerSubscriptionCheckingSubscriber();
  registerDeliverySubscriber();
  TransactionTemplate transactionTemplate=new TransactionTemplate(myTxManager);
  transactionTemplate.execute(new TransactionCallbackWithoutResult(){
    @Override protected void doInTransactionWithoutResult(    TransactionStatus status){
      initSubscriptions();
    }
  }
);
}