Program: 175316
Project: 175316
Buggy source:
public void start(){
  try {
    if (!isStoped) {
      clientSocket=serverSocket.accept();
      clientSocket.setKeepAlive(true);
      clientSocket.setSendBufferSize(NetworkConstant.SEND_BUFF_SIZE);
      outputChannel=new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()),NetworkConstant.SEND_BUFF_SIZE);
      inputChannel=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
      String message=inputChannel.readLine();
      if (message.charAt(0) == NetworkConstant.REQUIRE_ARGS) {
        logger.info("String_Node_Str");
        ArgumentsPayloadBuilder argsPayload=new ArgumentsPayloadBuilder(this.args);
        outputChannel.write(NetworkStringMessage.buildMessage(NetworkConstant.REQUIRE_ARGS,argsPayload.toString()));
        outputChannel.flush();
        sendServicePooledThread.execute(new Runnable(){
          @Override public void run(){
            while (true) {
              try {
                String message=sendQueue.take();
                try {
                  outputChannel.write(message);
                  outputChannel.newLine();
                }
 catch (                IOException e1) {
                  e1.printStackTrace();
                }
                if (message.length() <= 3 && message.charAt(0) == NetworkConstant.FINISHED_ALL) {
                  logger.info("String_Node_Str");
                  break;
                }
              }
 catch (              InterruptedException e) {
                e.printStackTrace();
              }
            }
          }
        }
);
      }
    }
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
public void start(){
  bossServicePooledThread.execute(new Runnable(){
    @Override public void run(){
      try {
        if (!isStoped) {
          clientSocket=serverSocket.accept();
          clientSocket.setKeepAlive(true);
          clientSocket.setSendBufferSize(NetworkConstant.SEND_BUFF_SIZE);
          outputChannel=new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()),NetworkConstant.SEND_BUFF_SIZE);
          inputChannel=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
          String message=inputChannel.readLine();
          if (message.charAt(0) == NetworkConstant.REQUIRE_ARGS) {
            logger.info("String_Node_Str");
            ArgumentsPayloadBuilder argsPayload=new ArgumentsPayloadBuilder(NativeServer.args);
            outputChannel.write(NetworkStringMessage.buildMessage(NetworkConstant.REQUIRE_ARGS,argsPayload.toString()));
            outputChannel.flush();
            sendServicePooledThread.execute(new Runnable(){
              @Override public void run(){
                while (true) {
                  try {
                    String message=sendQueue.take();
                    try {
                      outputChannel.write(message);
                      outputChannel.newLine();
                    }
 catch (                    IOException e1) {
                      e1.printStackTrace();
                    }
                    if (message.length() <= 3 && message.charAt(0) == NetworkConstant.FINISHED_ALL) {
                      logger.info("String_Node_Str");
                      break;
                    }
                  }
 catch (                  InterruptedException e) {
                    e.printStackTrace();
                  }
                }
              }
            }
);
          }
        }
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
);
}