Program: 147462
Project: 147462
Buggy source:
public void startWorking(){
  queueMessageCounter.set(0);
  topicMessageCounter.set(0);
  if (mode.equals("String_Node_Str") || mode.equals("String_Node_Str")) {
    log.info("String_Node_Str" + hostInformation);
    log.info("String_Node_Str" + destinations);
    log.info("String_Node_Str" + mode);
    log.info("String_Node_Str" + numOfSecondsToRunAsString);
    log.info("String_Node_Str" + messageCountAsString);
    log.info("String_Node_Str" + numberOfThreadsAsString);
    log.info("String_Node_Str" + printNumberOfMessagesPerAsString);
    log.info("String_Node_Str" + isToPrintEachMessageAsString);
    log.info("String_Node_Str" + parameters);
    log.info("String_Node_Str" + connectionString);
    String[] hostsAndPorts=hostInformation.split("String_Node_Str");
    String[] destinationList=destinations.split("String_Node_Str");
    String[] queues=null;
    String[] topics=null;
    for (int count=0; count < destinationList.length; count++) {
      String destinationString=destinationList[count];
      if (destinationString.startsWith("String_Node_Str")) {
        String queueString=destinationString.split("String_Node_Str")[1];
        queues=queueString.split("String_Node_Str");
      }
 else       if (destinationString.startsWith("String_Node_Str")) {
        String topicString=destinationString.split("String_Node_Str")[1];
        topics=topicString.split("String_Node_Str");
      }
    }
    String modeOfOperation=mode;
    int numberOfSecondsToWaitForMessages=Integer.MAX_VALUE;
    if (numOfSecondsToRunAsString != null && !numOfSecondsToRunAsString.equals("String_Node_Str")) {
      numberOfSecondsToWaitForMessages=Integer.parseInt(numOfSecondsToRunAsString);
    }
    int messageCount=1;
    if (messageCountAsString != null && !messageCountAsString.equals("String_Node_Str")) {
      messageCount=Integer.parseInt(messageCountAsString);
    }
    if (topics == null || topics.length == 0) {
      topicMessageCounter.set(messageCount);
    }
    if (queues == null || queues.length == 0) {
      queueMessageCounter.set(messageCount);
    }
    int numberOfThreads=1;
    if (numberOfThreadsAsString != null && !numberOfThreadsAsString.equals("String_Node_Str")) {
      numberOfThreads=Integer.parseInt(numberOfThreadsAsString);
    }
    int printNumberOfMessagesPer=1;
    if (printNumberOfMessagesPerAsString != null && !printNumberOfMessagesPerAsString.equals("String_Node_Str")) {
      printNumberOfMessagesPer=Integer.parseInt(printNumberOfMessagesPerAsString);
    }
    boolean isToPrintEachMessage=false;
    if (isToPrintEachMessageAsString != null && !isToPrintEachMessageAsString.equals("String_Node_Str")) {
      isToPrintEachMessage=Boolean.parseBoolean(isToPrintEachMessageAsString);
    }
    boolean isToUseListerner=true;
    boolean isDurable=false;
    String subscriptionID="String_Node_Str";
    String filePath=null;
    int ackMode=1;
    int delayBetWeenMessages=0;
    int stopAfter=Integer.MAX_VALUE;
    int ackAfterEach=Integer.MAX_VALUE;
    int commitAfterEach=Integer.MAX_VALUE;
    int rollbackAfterEach=Integer.MAX_VALUE;
    int unsubscribeAfter=Integer.MAX_VALUE;
    Long jmsExpiration=0L;
    String[] parameterStrings=parameters.split("String_Node_Str");
    for (int count=0; count < parameterStrings.length; count++) {
      String[] keyValues=parameterStrings[count].split("String_Node_Str");
      String key=keyValues[0];
      String value=keyValues[1];
      if (key.equals("String_Node_Str")) {
      }
 else       if (key.equals("String_Node_Str")) {
        isToUseListerner=Boolean.parseBoolean(value);
      }
 else       if (key.equals("String_Node_Str")) {
        isDurable=Boolean.parseBoolean(value);
      }
 else       if (key.equals("String_Node_Str")) {
        subscriptionID=value;
      }
 else       if (key.equals("String_Node_Str")) {
        filePath=value;
      }
 else       if (key.equals("String_Node_Str")) {
        ackMode=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        delayBetWeenMessages=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        stopAfter=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        ackAfterEach=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        commitAfterEach=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        rollbackAfterEach=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        unsubscribeAfter=Integer.parseInt(value);
      }
 else       if (key.equals("String_Node_Str")) {
        if (!value.equals("String_Node_Str")) {
          jmsExpiration=Long.parseLong(value);
        }
      }
    }
    if (modeOfOperation.equals("String_Node_Str")) {
      log.info("String_Node_Str");
      for (int count=0; count < numberOfThreads; count++) {
        int hostIndex=count % hostsAndPorts.length;
        String host=hostsAndPorts[hostIndex].split("String_Node_Str")[0];
        String port=hostsAndPorts[hostIndex].split("String_Node_Str")[1];
        if (queues != null && queues.length != 0) {
          int queueIndex=count % queues.length;
          String queue=queues[queueIndex];
          QueueMessageSender queueMessageSender=new QueueMessageSender(connectionString,host,port,this.username,this.password,queue,queueMessageCounter,messageCount,delayBetWeenMessages,filePath,printNumberOfMessagesPer,isToPrintEachMessage,jmsExpiration);
          queueMessageSender.setTypeOfMessage(messageType);
          queueMessageSenders.add(queueMessageSender);
          new Thread(queueMessageSender).start();
        }
        if (topics != null && topics.length != 0) {
          int topicIndex=count % topics.length;
          String topic=topics[topicIndex];
          TopicMessagePublisher topicMessagePublisher=new TopicMessagePublisher(connectionString,host,port,this.username,this.password,topic,topicMessageCounter,messageCount,delayBetWeenMessages,filePath,printNumberOfMessagesPer,isToPrintEachMessage,jmsExpiration);
          topicMessagePublishers.add(topicMessagePublisher);
          new Thread(topicMessagePublisher).start();
        }
      }
    }
 else     if (modeOfOperation.equals("String_Node_Str")) {
      log.info("String_Node_Str");
      File fileToWriteReceivedMessages=new File(filePathToWriteReceivedMessages);
      if (isToPrintEachMessage) {
        try {
          if (fileToWriteReceivedMessages.exists()) {
            fileToWriteReceivedMessages.delete();
          }
          fileToWriteReceivedMessages.getParentFile().mkdirs();
          fileToWriteReceivedMessages.createNewFile();
        }
 catch (        IOException e) {
          log.info("String_Node_Str" + e);
        }
      }
      for (int count=0; count < numberOfThreads; count++) {
        int hostIndex=count % hostsAndPorts.length;
        String host=hostsAndPorts[hostIndex].split("String_Node_Str")[0];
        String port=hostsAndPorts[hostIndex].split("String_Node_Str")[1];
        if (queues != null && queues.length != 0) {
          int queueIndex=count % queues.length;
          String queue=queues[queueIndex];
          QueueMessageReceiver queueMessageReceiver=new QueueMessageReceiver(connectionString,host,port,this.username,this.password,queue,ackMode,isToUseListerner,queueMessageCounter,delayBetWeenMessages,printNumberOfMessagesPer,isToPrintEachMessage,filePathToWriteReceivedMessages,stopAfter,ackAfterEach,commitAfterEach,rollbackAfterEach);
          queueListeners.add(queueMessageReceiver);
          new Thread(queueMessageReceiver).start();
        }
        if (topics != null && topics.length != 0) {
          int topicIndex=count % topics.length;
          String topic=topics[topicIndex];
          TopicMessageReceiver topicMessageReceiver=new TopicMessageReceiver(connectionString,host,port,this.username,this.password,topic,isDurable,subscriptionID,ackMode,isToUseListerner,topicMessageCounter,delayBetWeenMessages,printNumberOfMessagesPer,isToPrintEachMessage,filePathToWriteReceivedMessages,stopAfter,unsubscribeAfter,ackAfterEach,commitAfterEach,rollbackAfterEach);
          topicListeners.add(topicMessageReceiver);
          new Thread(topicMessageReceiver).start();
        }
      }
    }
 else {
      log.info("String_Node_Str");
    }
  }
 else   if (mode.equals("String_Node_Str")) {
    log.info("String_Node_Str");
    log.info("String_Node_Str" + mode);
    log.info("String_Node_Str" + hostInformation);
    log.info("String_Node_Str" + destinations);
    log.info("String_Node_Str" + printNumberOfMessagesPerAsString);
    log.info("String_Node_Str" + isToPrintEachMessageAsString);
    String hostName=hostInformation.split("String_Node_Str")[0];
    String port=hostInformation.split("String_Node_Str")[1];
    int printNumberOfMessagesPer=1;
    if (printNumberOfMessagesPerAsString != null && !printNumberOfMessagesPerAsString.equals("String_Node_Str")) {
      printNumberOfMessagesPer=Integer.parseInt(printNumberOfMessagesPerAsString);
    }
    boolean isToPrintEachMessage=false;
    if (isToPrintEachMessageAsString != null && !isToPrintEachMessageAsString.equals("String_Node_Str")) {
      isToPrintEachMessage=Boolean.parseBoolean(isToPrintEachMessageAsString);
    }
    int messageCount=browseQueue(hostName,port,this.username,this.password,destinations,printNumberOfMessagesPer,isToPrintEachMessage);
    log.info("String_Node_Str" + messageCount);
  }
 else   if (mode.equals("String_Node_Str")) {
    log.info("String_Node_Str");
    log.info("String_Node_Str" + mode);
    log.info("String_Node_Str" + hostInformation);
    String hostName=hostInformation.split("String_Node_Str")[0];
    String port=hostInformation.split("String_Node_Str")[1];
    int messageCount=browseQueue(hostName,port,this.username,this.password,destinations,Integer.MAX_VALUE,false);
    QueueMessageReceiver queueMessageReceiver=new QueueMessageReceiver("String_Node_Str",hostName,port,this.username,this.password,destinations,1,true,queueMessageCounter,0,Integer.MAX_VALUE,false,"String_Node_Str",messageCount,Integer.MAX_VALUE,Integer.MAX_VALUE,Integer.MAX_VALUE);
    queueListeners.add(queueMessageReceiver);
    new Thread(queueMessageReceiver).start();
    topicMessageCounter.set(messageCount);
  }
 else   if (mode.equals("String_Node_Str")) {
    String operation=analyticOperation;
    String numberOfMessagesSentAsString="String_Node_Str";
    int numberOfMessagesSent=0;
    if (operation.equals("String_Node_Str")) {
      numberOfMessagesSentAsString=numberOfMessagesExpectedForAnalysis;
      numberOfMessagesSent=Integer.parseInt(numberOfMessagesSentAsString);
    }
    log.info("String_Node_Str" + mode);
    log.info("String_Node_Str" + operation);
    AndesClientOutputParser andesClientOutputParser=new AndesClientOutputParser(filePathToWriteReceivedMessages);
    if (operation.equals("String_Node_Str")) {
      andesClientOutputParser.printMessagesMap();
    }
 else     if (operation.equals("String_Node_Str")) {
      andesClientOutputParser.printDuplicateMessages();
    }
 else     if (operation.equals("String_Node_Str")) {
      andesClientOutputParser.printMissingMessages(numberOfMessagesSent);
    }
 else     if (operation.equals("String_Node_Str")) {
      andesClientOutputParser.printMessagesSorted();
    }
 else     if (operation.equals("String_Node_Str")) {
      log.info("String_Node_Str" + andesClientOutputParser.checkIfMessagesAreInOrder());
    }
 else     if (operation.equals("String_Node_Str")) {
      andesClientOutputParser.clearFile();
    }
 else {
      log.info("String_Node_Str");
    }
  }
 else {
    log.info("String_Node_Str");
  }
}

Fixed version (ground truth):
public void startWorking(){
}