Program: 46114
Project: 46114
Buggy source:
@Override public void start(){
  if (logger.isFineEnabled()) {
    logger.fine("String_Node_Str" + inputThreadCount + "String_Node_Str"+ outputThreads+ "String_Node_Str");
  }
  logger.log(getSelectorMode() != SELECT ? INFO : FINE,"String_Node_Str" + getSelectorMode());
  this.inputThreads=new NonBlockingIOThread[inputThreadCount];
  for (int i=0; i < inputThreads.length; i++) {
    NonBlockingIOThread thread=new NonBlockingIOThread(hazelcastThreadGroup.getInternalThreadGroup(),hazelcastThreadGroup.getThreadPoolNamePrefix("String_Node_Str") + "String_Node_Str" + i,loggingService.getLogger(NonBlockingIOThread.class),oomeHandler,selectorMode,idleStrategy);
    thread.id=i;
    thread.setSelectorWorkaroundTest(selectorWorkaroundTest);
    inputThreads[i]=thread;
    metricsRegistry.scanAndRegister(thread,"String_Node_Str" + thread.getName() + "String_Node_Str");
    thread.start();
  }
  this.outputThreads=new NonBlockingIOThread[outputThreadCount];
  for (int i=0; i < outputThreads.length; i++) {
    NonBlockingIOThread thread=new NonBlockingIOThread(hazelcastThreadGroup.getInternalThreadGroup(),hazelcastThreadGroup.getThreadPoolNamePrefix("String_Node_Str") + "String_Node_Str" + i,loggingService.getLogger(NonBlockingIOThread.class),oomeHandler,selectorMode,idleStrategy);
    thread.id=i;
    thread.setSelectorWorkaroundTest(selectorWorkaroundTest);
    outputThreads[i]=thread;
    metricsRegistry.scanAndRegister(thread,"String_Node_Str" + thread.getName() + "String_Node_Str");
    thread.start();
  }
  startIOBalancer();
  if (metricsRegistry.minimumLevel().isEnabled(DEBUG)) {
    metricsRegistry.scheduleAtFixedRate(new PublishAllTask(),1,SECONDS);
  }
}

Fixed version (ground truth):
@Override public void start(){
  if (logger.isFineEnabled()) {
    logger.fine("String_Node_Str" + inputThreadCount + "String_Node_Str"+ outputThreadCount+ "String_Node_Str");
  }
  logger.log(getSelectorMode() != SELECT ? INFO : FINE,"String_Node_Str" + getSelectorMode());
  this.inputThreads=new NonBlockingIOThread[inputThreadCount];
  for (int i=0; i < inputThreads.length; i++) {
    NonBlockingIOThread thread=new NonBlockingIOThread(hazelcastThreadGroup.getInternalThreadGroup(),hazelcastThreadGroup.getThreadPoolNamePrefix("String_Node_Str") + "String_Node_Str" + i,loggingService.getLogger(NonBlockingIOThread.class),oomeHandler,selectorMode,idleStrategy);
    thread.id=i;
    thread.setSelectorWorkaroundTest(selectorWorkaroundTest);
    inputThreads[i]=thread;
    metricsRegistry.scanAndRegister(thread,"String_Node_Str" + thread.getName() + "String_Node_Str");
    thread.start();
  }
  this.outputThreads=new NonBlockingIOThread[outputThreadCount];
  for (int i=0; i < outputThreads.length; i++) {
    NonBlockingIOThread thread=new NonBlockingIOThread(hazelcastThreadGroup.getInternalThreadGroup(),hazelcastThreadGroup.getThreadPoolNamePrefix("String_Node_Str") + "String_Node_Str" + i,loggingService.getLogger(NonBlockingIOThread.class),oomeHandler,selectorMode,idleStrategy);
    thread.id=i;
    thread.setSelectorWorkaroundTest(selectorWorkaroundTest);
    outputThreads[i]=thread;
    metricsRegistry.scanAndRegister(thread,"String_Node_Str" + thread.getName() + "String_Node_Str");
    thread.start();
  }
  startIOBalancer();
  if (metricsRegistry.minimumLevel().isEnabled(DEBUG)) {
    metricsRegistry.scheduleAtFixedRate(new PublishAllTask(),1,SECONDS);
  }
}