Program: 118537
Project: 118537
Buggy source:
private void loadElementParameters(Element elemParam,ElementParameterType pType,IElementParameter param,String key,Object object,boolean isJunitLoad){
  if (param != null) {
    if (pType.isSetContextMode()) {
      param.setContextMode(pType.isContextMode());
    }
 else {
      param.setContextMode(false);
    }
    String value=null;
    if (object != null) {
      value=object.toString();
    }
    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(key,boolean1);
      }
 else {
        elemParam.setPropertyValue(key,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(key,param.getListItemsValue()[index]);
        }
      }
      if (!valueSet) {
        elemParam.setPropertyValue(key,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;
          IElementParameter tmpParam=null;
          for (          Object o : param.getListItemsValue()) {
            if (o instanceof IElementParameter) {
              IElementParameter tableParam=(IElementParameter)o;
              if (tableParam.getName().equals(elementValue.getElementRef())) {
                tmpParam=tableParam;
                if (tableParam.getFieldType() == EParameterFieldType.CONNECTION_LIST) {
                  needRemoveQuotes=true;
                }
              }
            }
          }
          String elemValue=elementValue.getValue();
          if (tmpParam != null && EParameterFieldType.PASSWORD.equals(tmpParam.getFieldType())) {
            elemValue=elementValue.getRawValue();
          }
          if (needRemoveQuotes) {
            lineValues.put(elementValue.getElementRef(),TalendTextUtils.removeQuotes(elemValue));
          }
 else {
            lineValues.put(elementValue.getElementRef(),elemValue);
          }
          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(key,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(key,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(key,value);
    }
 else     if (param.getFieldType().equals(EParameterFieldType.PASSWORD)) {
      if (generic) {
        param.setValue(value);
      }
 else {
        param.setValue(pType.getRawValue());
      }
    }
 else     if (param.getFieldType().equals(EParameterFieldType.SCHEMA_REFERENCE)) {
      elemParam.setPropertyValue(key,object);
    }
 else     if (!param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) {
      if (param.getFieldType().equals(EParameterFieldType.COLOR)) {
        if (value != null && value.length() > 2) {
          elemParam.setPropertyValue(key,TalendTextUtils.removeQuotesIfExist(value));
        }
      }
 else {
        elemParam.setPropertyValue(key,value);
      }
    }
  }
 else   if (UpdateTheJobsActionsOnTable.isClear && "String_Node_Str".equals(key) && "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,ElementParameterType pType,IElementParameter param,String key,Object object,boolean isJunitLoad){
  if (param != null) {
    if (pType.isSetContextMode()) {
      param.setContextMode(pType.isContextMode());
    }
 else {
      param.setContextMode(false);
    }
    String value=null;
    if (object != null) {
      value=object.toString();
    }
    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(key,boolean1);
      }
 else {
        elemParam.setPropertyValue(key,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(key,param.getListItemsValue()[index]);
        }
      }
      if (!valueSet) {
        elemParam.setPropertyValue(key,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;
          IElementParameter tmpParam=null;
          for (          Object o : param.getListItemsValue()) {
            if (o instanceof IElementParameter) {
              IElementParameter tableParam=(IElementParameter)o;
              if (tableParam.getName().equals(elementValue.getElementRef())) {
                tmpParam=tableParam;
                if (tableParam.getFieldType() == EParameterFieldType.CONNECTION_LIST) {
                  needRemoveQuotes=true;
                }
              }
            }
          }
          String elemValue=elementValue.getValue();
          if (tmpParam != null && EParameterFieldType.PASSWORD.equals(tmpParam.getFieldType())) {
            elemValue=elementValue.getRawValue();
          }
          if (needRemoveQuotes) {
            lineValues.put(elementValue.getElementRef(),TalendTextUtils.removeQuotes(elemValue));
          }
 else {
            lineValues.put(elementValue.getElementRef(),elemValue);
          }
          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(key,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(key,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(key,value);
    }
 else     if (param.getFieldType().equals(EParameterFieldType.PASSWORD)) {
      boolean generic=false;
      IComponent component=null;
      if (elemParam instanceof Node) {
        component=((INode)elemParam).getComponent();
        if (EComponentType.GENERIC.equals(component.getComponentType())) {
          generic=true;
        }
      }
      if (generic) {
        param.setValue(value);
      }
 else {
        param.setValue(pType.getRawValue());
      }
    }
 else     if (param.getFieldType().equals(EParameterFieldType.SCHEMA_REFERENCE)) {
      elemParam.setPropertyValue(key,object);
    }
 else     if (!param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) {
      if (param.getFieldType().equals(EParameterFieldType.COLOR)) {
        if (value != null && value.length() > 2) {
          elemParam.setPropertyValue(key,TalendTextUtils.removeQuotesIfExist(value));
        }
      }
 else {
        elemParam.setPropertyValue(key,value);
      }
    }
  }
 else   if (UpdateTheJobsActionsOnTable.isClear && "String_Node_Str".equals(key) && "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;
  }
}