Program: 118539
Project: 118539
Buggy source:
@Override protected ElementParameterType getParameterType(NodeType node,String paramName){
  ElementParameterType paramType=ParameterUtilTool.findParameterType(node,paramName);
  if (node != null && paramType != null) {
    Object value=ParameterUtilTool.convertParameterValue(paramType);
    if ("String_Node_Str".equals(paramName) && "String_Node_Str".equals(value)) {
      paramName="String_Node_Str";
      paramType=ParameterUtilTool.findParameterType(node,paramName);
    }
 else     if ("String_Node_Str".equals(paramName) && value != null && !"String_Node_Str".equals(value)) {
      ElementParameterType useConnection=ParameterUtilTool.findParameterType(node,"String_Node_Str");
      if (useConnection != null && Boolean.valueOf(String.valueOf(ParameterUtilTool.convertParameterValue(useConnection)))) {
        return paramType;
      }
 else {
        return null;
      }
    }
 else     if ("String_Node_Str".equals(paramName)) {
      if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
 else {
        paramType.setValue("String_Node_Str");
      }
    }
 else     if ("String_Node_Str".equals(paramName)) {
      if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
    }
  }
  return paramType;
}

Fixed version (ground truth):
@Override protected ElementParameterType getParameterType(NodeType node,String paramName){
  ElementParameterType paramType=ParameterUtilTool.findParameterType(node,paramName);
  if (node != null && paramType != null) {
    Object value=ParameterUtilTool.convertParameterValue(paramType);
    if ("String_Node_Str".equals(paramName) && "String_Node_Str".equals(value)) {
      paramName="String_Node_Str";
      if ("String_Node_Str".equals(node.getComponentName())) {
        paramName="String_Node_Str";
      }
      ElementParameterType customModuleName=ParameterUtilTool.findParameterType(node,paramName);
      if (customModuleName != null) {
        paramType.setValue(StringUtils.strip(String.valueOf(ParameterUtilTool.convertParameterValue(customModuleName)),"String_Node_Str"));
      }
    }
 else     if ("String_Node_Str".equals(paramName) && value != null && !"String_Node_Str".equals(value)) {
      ElementParameterType useConnection=ParameterUtilTool.findParameterType(node,"String_Node_Str");
      if (useConnection != null && Boolean.valueOf(String.valueOf(ParameterUtilTool.convertParameterValue(useConnection)))) {
        return paramType;
      }
 else {
        return null;
      }
    }
 else     if ("String_Node_Str".equals(paramName)) {
      if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
 else {
        paramType.setValue("String_Node_Str");
      }
    }
 else     if ("String_Node_Str".equals(paramName)) {
      if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
 else       if ("String_Node_Str".equals(value)) {
        paramType.setValue("String_Node_Str");
      }
    }
  }
  return paramType;
}