Program: 167327
Project: 167327
Buggy source:
@Override public void handle(Message inputMessage,ISendMessageCallback callback,boolean unitOfWorkBoundaryReached){
  if ((PER_UNIT_OF_WORK.equals(runWhen) && inputMessage instanceof ControlMessage) || (!PER_UNIT_OF_WORK.equals(runWhen) && !(inputMessage instanceof ControlMessage))) {
    HttpDirectory streamable=getResourceReference();
    httpHeaders=getHttpHeaderConfigEntries(inputMessage);
    httpParameters=getHttpParameterConfigEntries(inputMessage);
    assembleRelativePathPlusParameters();
    ArrayList<String> outputPayload=new ArrayList<String>();
    ArrayList<String> inputPayload=new ArrayList<String>();
    if (bodyFrom.equals("String_Node_Str") && inputMessage instanceof TextMessage) {
      inputPayload=((TextMessage)inputMessage).getPayload();
    }
 else {
      inputPayload.add(bodyText);
    }
    if (inputPayload != null) {
      try {
        String path=resolveParamsAndHeaders(relativePath,inputMessage);
        for (        String requestContent : inputPayload) {
          getComponentStatistics().incrementNumberEntitiesProcessed(threadNumber);
          if (parameterReplacement) {
            requestContent=resolveParamsAndHeaders(requestContent,inputMessage);
          }
          if (isNotBlank(requestContent)) {
            info("String_Node_Str",path);
            HttpOutputStream os=(HttpOutputStream)streamable.getOutputStream(path,httpHeaders,httpParameters);
            BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(os,DEFAULT_CHARSET));
            try {
              writer.write(requestContent);
            }
  finally {
              writer.close();
              String response=os.getResponse();
              if (response != null) {
                outputPayload.add(response);
              }
            }
          }
 else {
            info("String_Node_Str",path);
            InputStream is=streamable.getInputStream(path,httpHeaders,httpParameters);
            try {
              String response=IOUtils.toString(is);
              if (response != null) {
                outputPayload.add(response);
              }
            }
  finally {
              IOUtils.closeQuietly(is);
            }
          }
        }
        if (outputPayload.size() > 0) {
          callback.sendTextMessage(null,outputPayload);
        }
      }
 catch (      IOException e) {
        throw new IoException(String.format("String_Node_Str",streamable),e);
      }
    }
  }
}

Fixed version (ground truth):
@Override public void handle(Message inputMessage,ISendMessageCallback callback,boolean unitOfWorkBoundaryReached){
  if ((PER_UNIT_OF_WORK.equals(runWhen) && inputMessage instanceof ControlMessage) || (!PER_UNIT_OF_WORK.equals(runWhen) && !(inputMessage instanceof ControlMessage))) {
    IDirectory streamable=getResourceReference();
    httpHeaders=getHttpHeaderConfigEntries(inputMessage);
    httpParameters=getHttpParameterConfigEntries(inputMessage);
    assembleRelativePathPlusParameters();
    ArrayList<String> outputPayload=new ArrayList<String>();
    ArrayList<String> inputPayload=new ArrayList<String>();
    if (bodyFrom.equals("String_Node_Str") && inputMessage instanceof TextMessage) {
      inputPayload=((TextMessage)inputMessage).getPayload();
    }
 else {
      inputPayload.add(bodyText);
    }
    if (inputPayload != null) {
      try {
        String path=resolveParamsAndHeaders(relativePath,inputMessage);
        for (        String requestContent : inputPayload) {
          getComponentStatistics().incrementNumberEntitiesProcessed(threadNumber);
          if (parameterReplacement) {
            requestContent=resolveParamsAndHeaders(requestContent,inputMessage);
          }
          if (isNotBlank(requestContent)) {
            info("String_Node_Str",path);
            OutputStream os=streamable.getOutputStream(path,false,false,false,httpHeaders,httpParameters);
            BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(os,DEFAULT_CHARSET));
            try {
              writer.write(requestContent);
            }
  finally {
              writer.close();
              if (os instanceof IOutputStreamWithResponse) {
                String response=((IOutputStreamWithResponse)os).getResponse();
                if (response != null) {
                  outputPayload.add(response);
                }
              }
            }
          }
 else {
            info("String_Node_Str",path);
            InputStream is=streamable.getInputStream(path,false,false,httpHeaders,httpParameters);
            try {
              String response=IOUtils.toString(is);
              if (response != null) {
                outputPayload.add(response);
              }
            }
  finally {
              IOUtils.closeQuietly(is);
            }
          }
        }
        if (outputPayload.size() > 0) {
          callback.sendTextMessage(null,outputPayload);
        }
      }
 catch (      IOException e) {
        throw new IoException(String.format("String_Node_Str",streamable),e);
      }
    }
  }
}