Program: 119388
Project: 119388
Buggy source:
private void loadElementParameters(Element elemParam,EList listParamType){
  ElementParameterType pType;
  for (int j=0; j < listParamType.size(); j++) {
    pType=(ElementParameterType)listParamType.get(j);
    if (pType != null) {
      IElementParameter param=null;
      if ("String_Node_Str".equals(pType.getName())) {
        param=new ElementParameter(elemParam);
        param.setValue(pType.getValue());
        param.setName("String_Node_Str");
        param.setCategory(EComponentCategory.TECHNICAL);
        param.setFieldType(EParameterFieldType.SURVIVOR_RELATION);
        param.setNumRow(99);
        param.setShow(false);
        param.setReadOnly(true);
        elemParam.addElementParameter(param);
        param=null;
        continue;
      }
      param=elemParam.getElementParameter(pType.getName());
      if (param != null) {
        if (pType.isSetContextMode()) {
          param.setContextMode(pType.isContextMode());
        }
 else {
          param.setContextMode(false);
        }
        if (param.isReadOnly() && !(param.getName().equals(EParameterName.UNIQUE_NAME.getName()) || param.getName().equals(EParameterName.VERSION.getName()))) {
          continue;
        }
        String value=pType.getValue();
        if (param.getFieldType().equals(EParameterFieldType.CHECK) || param.getFieldType().equals(EParameterFieldType.RADIO)) {
          if ("String_Node_Str".equalsIgnoreCase(value) || "String_Node_Str".equalsIgnoreCase(value) || !pType.isContextMode()) {
            Boolean boolean1=new Boolean(value);
            elemParam.setPropertyValue(pType.getName(),boolean1);
          }
 else {
            elemParam.setPropertyValue(pType.getName(),value);
          }
        }
 else         if (param.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) {
          boolean valueSet=false;
          if (!ArrayUtils.contains(param.getListItemsValue(),value)) {
            if (ArrayUtils.contains(param.getListItemsDisplayName(),value)) {
              valueSet=true;
              int index=ArrayUtils.indexOf(param.getListItemsDisplayName(),value);
              elemParam.setPropertyValue(pType.getName(),param.getListItemsValue()[index]);
            }
          }
          if (!valueSet) {
            elemParam.setPropertyValue(pType.getName(),value);
          }
          if (param.getName().equals(EParameterName.DB_TYPE.getName())) {
            IElementParameter elementParameter=elemParam.getElementParameter(EParameterName.DB_VERSION.getName());
            JobSettingVersionUtil.setDbVersion(elementParameter,value,true);
            IElementParameter elementParameter2=elemParam.getElementParameter(EParameterName.SCHEMA_DB.getName());
            DesignerUtilities.setSchemaDB(elementParameter2,param.getValue());
          }
 else           if (param.getName().equals(JobSettingsConstants.getExtraParameterName(EParameterName.DB_TYPE.getName()))) {
            IElementParameter elementParameter=elemParam.getElementParameter(JobSettingsConstants.getExtraParameterName(EParameterName.DB_VERSION.getName()));
            JobSettingVersionUtil.setDbVersion(elementParameter,value,true);
            IElementParameter elementParameter2=elemParam.getElementParameter(JobSettingsConstants.getExtraParameterName(EParameterName.SCHEMA_DB.getName()));
            DesignerUtilities.setSchemaDB(elementParameter2,param.getValue());
          }
        }
 else         if (param.getFieldType().equals(EParameterFieldType.TABLE)) {
          List<Map<String,Object>> tableValues=new ArrayList<Map<String,Object>>();
          String[] codeList=param.getListItemsDisplayCodeName();
          Map<String,Object> lineValues=null;
          for (          ElementValueType elementValue : (List<ElementValueType>)pType.getElementValue()) {
            boolean found=false;
            for (int i=0; i < codeList.length && !found; i++) {
              if (codeList[i].equals(elementValue.getElementRef())) {
                found=true;
              }
            }
            if (found) {
              if ((lineValues == null) || (lineValues.get(elementValue.getElementRef()) != null)) {
                lineValues=new HashMap<String,Object>();
                tableValues.add(lineValues);
              }
              boolean needRemoveQuotes=false;
              for (              Object o : param.getListItemsValue()) {
                if (o instanceof IElementParameter) {
                  IElementParameter tableParam=(IElementParameter)o;
                  if (tableParam.getName().equals(elementValue.getElementRef()) && (tableParam.getFieldType() == EParameterFieldType.CONNECTION_LIST)) {
                    needRemoveQuotes=true;
                  }
                }
              }
              if (needRemoveQuotes) {
                lineValues.put(elementValue.getElementRef(),TalendTextUtils.removeQuotes(elementValue.getValue()));
              }
 else {
                lineValues.put(elementValue.getElementRef(),elementValue.getValue());
              }
              if (elementValue.getType() != null) {
                lineValues.put(elementValue.getElementRef() + IEbcdicConstant.REF_TYPE,elementValue.getType());
              }
            }
          }
          for (          Map<String,Object> line : tableValues) {
            for (int i=0; i < codeList.length; i++) {
              if (!line.containsKey(codeList[i])) {
                IElementParameter itemParam=(IElementParameter)param.getListItemsValue()[i];
                line.put(codeList[i],itemParam.getValue());
              }
            }
          }
          elemParam.setPropertyValue(pType.getName(),tableValues);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.TABLE_BY_ROW)) {
          List<Map<String,Object>> tableValues=new ArrayList<Map<String,Object>>();
          Map<String,Object> lineValues=null;
          for (          ElementValueType elementValue : (List<ElementValueType>)pType.getElementValue()) {
            if ((lineValues == null) || (lineValues.get(elementValue.getElementRef()) != null)) {
              lineValues=new HashMap<String,Object>();
              tableValues.add(lineValues);
            }
            lineValues.put(elementValue.getElementRef(),elementValue.getValue());
          }
          elemParam.setPropertyValue(pType.getName(),tableValues);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.ENCODING_TYPE)) {
          boolean setToCustom=false;
          if (EmfComponent.REPOSITORY.equals(elemParam.getPropertyValue(EParameterName.PROPERTY_TYPE.getName())) && param.getRepositoryValue() != null && param.getRepositoryValue().equals("String_Node_Str")) {
            setToCustom=true;
          }
          String tempValue=(String)param.getChildParameters().get(EParameterName.ENCODING_TYPE.getName()).getValue();
          if (!tempValue.equals(EmfComponent.ENCODING_TYPE_CUSTOM)) {
            tempValue=tempValue.replaceAll("String_Node_Str","String_Node_Str");
            tempValue=tempValue.replaceAll("String_Node_Str","String_Node_Str");
            tempValue=TalendTextUtils.addQuotes(tempValue);
            if (!tempValue.equals(value)) {
              setToCustom=true;
            }
          }
          if (setToCustom) {
            param.getChildParameters().get(EParameterName.ENCODING_TYPE.getName()).setValue(EmfComponent.ENCODING_TYPE_CUSTOM);
          }
          elemParam.setPropertyValue(pType.getName(),value);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.PASSWORD)) {
          boolean encrypted=true;
          try {
            int ind=value.lastIndexOf(PasswordEncryptUtil.ENCRYPT_KEY);
            if (ind == -1) {
              encrypted=false;
            }
 else {
              String encryptedPart=new StringBuilder(value).replace(ind,ind + PasswordEncryptUtil.ENCRYPT_KEY.length(),"String_Node_Str").toString();
              String decryptedValue=PasswordEncryptUtil.decryptPassword(encryptedPart);
              param.setValue(decryptedValue);
            }
          }
 catch (          Exception e) {
            encrypted=false;
          }
          if (!encrypted) {
            param.setValue(value);
          }
        }
 else         if (!param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) {
          if (param.getFieldType().equals(EParameterFieldType.COLOR)) {
            if (value != null && value.length() > 2) {
              elemParam.setPropertyValue(pType.getName(),TalendTextUtils.removeQuotesIfExist(value));
            }
          }
 else {
            elemParam.setPropertyValue(pType.getName(),value);
          }
        }
      }
 else       if (UpdateTheJobsActionsOnTable.isClear && "String_Node_Str".equals(pType.getName()) && "String_Node_Str".equals(pType.getValue())&& "String_Node_Str".equals(elemParam.getElementParameter(Process.TABLE_ACTION).getValue())) {
        elemParam.setPropertyValue(Process.TABLE_ACTION,"String_Node_Str");
        UpdateTheJobsActionsOnTable.isClear=false;
      }
    }
  }
}

Fixed version (ground truth):
private void loadElementParameters(Element elemParam,EList listParamType){
  ElementParameterType pType;
  for (int j=0; j < listParamType.size(); j++) {
    pType=(ElementParameterType)listParamType.get(j);
    if (pType != null) {
      IElementParameter param=null;
      if (EParameterFieldType.SURVIVOR_RELATION.name().equals(pType.getField())) {
        param=new ElementParameter(elemParam);
        param.setValue(pType.getValue());
        param.setName(pType.getName());
        param.setCategory(EComponentCategory.TECHNICAL);
        param.setFieldType(EParameterFieldType.SURVIVOR_RELATION);
        param.setNumRow(99);
        param.setShow(false);
        param.setReadOnly(true);
        elemParam.addElementParameter(param);
        param=null;
        continue;
      }
      param=elemParam.getElementParameter(pType.getName());
      if (param != null) {
        if (pType.isSetContextMode()) {
          param.setContextMode(pType.isContextMode());
        }
 else {
          param.setContextMode(false);
        }
        if (param.isReadOnly() && !(param.getName().equals(EParameterName.UNIQUE_NAME.getName()) || param.getName().equals(EParameterName.VERSION.getName()))) {
          continue;
        }
        String value=pType.getValue();
        if (param.getFieldType().equals(EParameterFieldType.CHECK) || param.getFieldType().equals(EParameterFieldType.RADIO)) {
          if ("String_Node_Str".equalsIgnoreCase(value) || "String_Node_Str".equalsIgnoreCase(value) || !pType.isContextMode()) {
            Boolean boolean1=new Boolean(value);
            elemParam.setPropertyValue(pType.getName(),boolean1);
          }
 else {
            elemParam.setPropertyValue(pType.getName(),value);
          }
        }
 else         if (param.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) {
          boolean valueSet=false;
          if (!ArrayUtils.contains(param.getListItemsValue(),value)) {
            if (ArrayUtils.contains(param.getListItemsDisplayName(),value)) {
              valueSet=true;
              int index=ArrayUtils.indexOf(param.getListItemsDisplayName(),value);
              elemParam.setPropertyValue(pType.getName(),param.getListItemsValue()[index]);
            }
          }
          if (!valueSet) {
            elemParam.setPropertyValue(pType.getName(),value);
          }
          if (param.getName().equals(EParameterName.DB_TYPE.getName())) {
            IElementParameter elementParameter=elemParam.getElementParameter(EParameterName.DB_VERSION.getName());
            JobSettingVersionUtil.setDbVersion(elementParameter,value,true);
            IElementParameter elementParameter2=elemParam.getElementParameter(EParameterName.SCHEMA_DB.getName());
            DesignerUtilities.setSchemaDB(elementParameter2,param.getValue());
          }
 else           if (param.getName().equals(JobSettingsConstants.getExtraParameterName(EParameterName.DB_TYPE.getName()))) {
            IElementParameter elementParameter=elemParam.getElementParameter(JobSettingsConstants.getExtraParameterName(EParameterName.DB_VERSION.getName()));
            JobSettingVersionUtil.setDbVersion(elementParameter,value,true);
            IElementParameter elementParameter2=elemParam.getElementParameter(JobSettingsConstants.getExtraParameterName(EParameterName.SCHEMA_DB.getName()));
            DesignerUtilities.setSchemaDB(elementParameter2,param.getValue());
          }
        }
 else         if (param.getFieldType().equals(EParameterFieldType.TABLE)) {
          List<Map<String,Object>> tableValues=new ArrayList<Map<String,Object>>();
          String[] codeList=param.getListItemsDisplayCodeName();
          Map<String,Object> lineValues=null;
          for (          ElementValueType elementValue : (List<ElementValueType>)pType.getElementValue()) {
            boolean found=false;
            for (int i=0; i < codeList.length && !found; i++) {
              if (codeList[i].equals(elementValue.getElementRef())) {
                found=true;
              }
            }
            if (found) {
              if ((lineValues == null) || (lineValues.get(elementValue.getElementRef()) != null)) {
                lineValues=new HashMap<String,Object>();
                tableValues.add(lineValues);
              }
              boolean needRemoveQuotes=false;
              for (              Object o : param.getListItemsValue()) {
                if (o instanceof IElementParameter) {
                  IElementParameter tableParam=(IElementParameter)o;
                  if (tableParam.getName().equals(elementValue.getElementRef()) && (tableParam.getFieldType() == EParameterFieldType.CONNECTION_LIST)) {
                    needRemoveQuotes=true;
                  }
                }
              }
              if (needRemoveQuotes) {
                lineValues.put(elementValue.getElementRef(),TalendTextUtils.removeQuotes(elementValue.getValue()));
              }
 else {
                lineValues.put(elementValue.getElementRef(),elementValue.getValue());
              }
              if (elementValue.getType() != null) {
                lineValues.put(elementValue.getElementRef() + IEbcdicConstant.REF_TYPE,elementValue.getType());
              }
            }
          }
          for (          Map<String,Object> line : tableValues) {
            for (int i=0; i < codeList.length; i++) {
              if (!line.containsKey(codeList[i])) {
                IElementParameter itemParam=(IElementParameter)param.getListItemsValue()[i];
                line.put(codeList[i],itemParam.getValue());
              }
            }
          }
          elemParam.setPropertyValue(pType.getName(),tableValues);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.TABLE_BY_ROW)) {
          List<Map<String,Object>> tableValues=new ArrayList<Map<String,Object>>();
          Map<String,Object> lineValues=null;
          for (          ElementValueType elementValue : (List<ElementValueType>)pType.getElementValue()) {
            if ((lineValues == null) || (lineValues.get(elementValue.getElementRef()) != null)) {
              lineValues=new HashMap<String,Object>();
              tableValues.add(lineValues);
            }
            lineValues.put(elementValue.getElementRef(),elementValue.getValue());
          }
          elemParam.setPropertyValue(pType.getName(),tableValues);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.ENCODING_TYPE)) {
          boolean setToCustom=false;
          if (EmfComponent.REPOSITORY.equals(elemParam.getPropertyValue(EParameterName.PROPERTY_TYPE.getName())) && param.getRepositoryValue() != null && param.getRepositoryValue().equals("String_Node_Str")) {
            setToCustom=true;
          }
          String tempValue=(String)param.getChildParameters().get(EParameterName.ENCODING_TYPE.getName()).getValue();
          if (!tempValue.equals(EmfComponent.ENCODING_TYPE_CUSTOM)) {
            tempValue=tempValue.replaceAll("String_Node_Str","String_Node_Str");
            tempValue=tempValue.replaceAll("String_Node_Str","String_Node_Str");
            tempValue=TalendTextUtils.addQuotes(tempValue);
            if (!tempValue.equals(value)) {
              setToCustom=true;
            }
          }
          if (setToCustom) {
            param.getChildParameters().get(EParameterName.ENCODING_TYPE.getName()).setValue(EmfComponent.ENCODING_TYPE_CUSTOM);
          }
          elemParam.setPropertyValue(pType.getName(),value);
        }
 else         if (param.getFieldType().equals(EParameterFieldType.PASSWORD)) {
          boolean encrypted=true;
          try {
            int ind=value.lastIndexOf(PasswordEncryptUtil.ENCRYPT_KEY);
            if (ind == -1) {
              encrypted=false;
            }
 else {
              String encryptedPart=new StringBuilder(value).replace(ind,ind + PasswordEncryptUtil.ENCRYPT_KEY.length(),"String_Node_Str").toString();
              String decryptedValue=PasswordEncryptUtil.decryptPassword(encryptedPart);
              param.setValue(decryptedValue);
            }
          }
 catch (          Exception e) {
            encrypted=false;
          }
          if (!encrypted) {
            param.setValue(value);
          }
        }
 else         if (!param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) {
          if (param.getFieldType().equals(EParameterFieldType.COLOR)) {
            if (value != null && value.length() > 2) {
              elemParam.setPropertyValue(pType.getName(),TalendTextUtils.removeQuotesIfExist(value));
            }
          }
 else {
            elemParam.setPropertyValue(pType.getName(),value);
          }
        }
      }
 else       if (UpdateTheJobsActionsOnTable.isClear && "String_Node_Str".equals(pType.getName()) && "String_Node_Str".equals(pType.getValue())&& "String_Node_Str".equals(elemParam.getElementParameter(Process.TABLE_ACTION).getValue())) {
        elemParam.setPropertyValue(Process.TABLE_ACTION,"String_Node_Str");
        UpdateTheJobsActionsOnTable.isClear=false;
      }
    }
  }
}