Program: 118746
Project: 118746
Buggy source:
public void addMainParameters(final List<ElementParameter> listParam,INode node){
  ElementParameter param;
  param=new ElementParameter(node);
  param.setName(EParameterName.UNIQUE_NAME.getName());
  param.setValue("String_Node_Str");
  param.setDisplayName(EParameterName.UNIQUE_NAME.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.ADVANCED);
  param.setNumRow(1);
  param.setReadOnly(true);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.COMPONENT_NAME.getName());
  param.setValue(getName());
  param.setDisplayName(EParameterName.COMPONENT_NAME.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(1);
  param.setReadOnly(true);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.FAMILY.getName());
  param.setValue(getOriginalFamilyName());
  param.setDisplayName(EParameterName.FAMILY.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(3);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  if (canStart()) {
    param=new ElementParameter(node);
    param.setName(EParameterName.START.getName());
    param.setValue(new Boolean(false));
    param.setDisplayName(EParameterName.START.getDisplayName());
    param.setFieldType(EParameterFieldType.CHECK);
    param.setCategory(EComponentCategory.TECHNICAL);
    param.setNumRow(5);
    param.setReadOnly(true);
    param.setRequired(false);
    param.setShow(false);
    listParam.add(param);
  }
  param=new ElementParameter(node);
  param.setName(EParameterName.STARTABLE.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.STARTABLE.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.SUBTREE_START.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.SUBTREE_START.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.END_OF_FLOW.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.END_OF_FLOW.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.ACTIVATE.getName());
  param.setValue(new Boolean(true));
  param.setDisplayName(EParameterName.ACTIVATE.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(false);
  param.setRequired(false);
  param.setDefaultValue(param.getValue());
  param.setShow(true);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.HELP.getName());
  param.setValue(getTranslatedValue(PROP_HELP));
  param.setDisplayName(EParameterName.HELP.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(6);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.UPDATE_COMPONENTS.getName());
  param.setValue(new Boolean(false));
  param.setDisplayName(EParameterName.UPDATE_COMPONENTS.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.IREPORT_PATH.getName());
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setFieldType(EParameterFieldType.DIRECTORY);
  param.setDisplayName(EParameterName.IREPORT_PATH.getDisplayName());
  param.setNumRow(99);
  param.setShow(false);
  param.setValue(CorePlugin.getDefault().getPluginPreferences().getString(ITalendCorePrefConstants.IREPORT_PATH));
  param.setReadOnly(true);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName("String_Node_Str");
  param.setCategory(EComponentCategory.BASIC);
  param.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName());
  param.setFieldType(EParameterFieldType.PROPERTY_TYPE);
  param.setRepositoryValue(getRepositoryType());
  param.setValue("String_Node_Str");
  param.setNumRow(2);
  ElementParameter newParam=new ElementParameter(node);
  newParam.setCategory(EComponentCategory.BASIC);
  newParam.setName(EParameterName.PROPERTY_TYPE.getName());
  newParam.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName());
  newParam.setListItemsDisplayName(new String[]{TEXT_BUILTIN,TEXT_REPOSITORY});
  newParam.setListItemsDisplayCodeName(new String[]{BUILTIN,REPOSITORY});
  newParam.setListItemsValue(new String[]{BUILTIN,REPOSITORY});
  newParam.setValue(BUILTIN);
  newParam.setNumRow(param.getNumRow());
  newParam.setFieldType(EParameterFieldType.TECHNICAL);
  newParam.setShow(false);
  newParam.setShowIf(param.getName() + "String_Node_Str" + REPOSITORY+ "String_Node_Str");
  newParam.setReadOnly(param.isReadOnly());
  newParam.setNotShowIf(param.getNotShowIf());
  newParam.setContext(IGenericConstants.CONTEXT);
  newParam.setSerialized(true);
  newParam.setParentParameter(param);
  newParam=new ElementParameter(node);
  newParam.setCategory(EComponentCategory.BASIC);
  newParam.setName(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
  newParam.setDisplayName(EParameterName.REPOSITORY_PROPERTY_TYPE.getDisplayName());
  newParam.setListItemsDisplayName(new String[]{});
  newParam.setListItemsValue(new String[]{});
  newParam.setNumRow(param.getNumRow());
  newParam.setFieldType(EParameterFieldType.TECHNICAL);
  newParam.setValue("String_Node_Str");
  newParam.setShow(false);
  newParam.setRequired(true);
  newParam.setReadOnly(param.isReadOnly());
  newParam.setShowIf(param.getName() + "String_Node_Str" + REPOSITORY+ "String_Node_Str");
  newParam.setNotShowIf(param.getNotShowIf());
  newParam.setContext(IGenericConstants.CONTEXT);
  newParam.setSerialized(true);
  newParam.setParentParameter(param);
  listParam.add(param);
}

Fixed version (ground truth):
public void addMainParameters(final List<ElementParameter> listParam,INode node){
  ElementParameter param;
  param=new ElementParameter(node);
  param.setName(EParameterName.UNIQUE_NAME.getName());
  param.setValue("String_Node_Str");
  param.setDisplayName(EParameterName.UNIQUE_NAME.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.ADVANCED);
  param.setNumRow(1);
  param.setReadOnly(true);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.COMPONENT_NAME.getName());
  param.setValue(getName());
  param.setDisplayName(EParameterName.COMPONENT_NAME.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(1);
  param.setReadOnly(true);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.FAMILY.getName());
  param.setValue(getOriginalFamilyName());
  param.setDisplayName(EParameterName.FAMILY.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(3);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  if (canStart()) {
    param=new ElementParameter(node);
    param.setName(EParameterName.START.getName());
    param.setValue(new Boolean(false));
    param.setDisplayName(EParameterName.START.getDisplayName());
    param.setFieldType(EParameterFieldType.CHECK);
    param.setCategory(EComponentCategory.TECHNICAL);
    param.setNumRow(5);
    param.setReadOnly(true);
    param.setRequired(false);
    param.setShow(false);
    listParam.add(param);
  }
  param=new ElementParameter(node);
  param.setName(EParameterName.STARTABLE.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.STARTABLE.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.SUBTREE_START.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.SUBTREE_START.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.END_OF_FLOW.getName());
  param.setValue(new Boolean(canStart()));
  param.setDisplayName(EParameterName.END_OF_FLOW.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.ACTIVATE.getName());
  param.setValue(new Boolean(true));
  param.setDisplayName(EParameterName.ACTIVATE.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(false);
  param.setRequired(false);
  param.setDefaultValue(param.getValue());
  param.setShow(true);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.HELP.getName());
  param.setValue(getTranslatedValue(PROP_HELP));
  param.setDisplayName(EParameterName.HELP.getDisplayName());
  param.setFieldType(EParameterFieldType.TEXT);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(6);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.UPDATE_COMPONENTS.getName());
  param.setValue(new Boolean(false));
  param.setDisplayName(EParameterName.UPDATE_COMPONENTS.getDisplayName());
  param.setFieldType(EParameterFieldType.CHECK);
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setNumRow(5);
  param.setReadOnly(true);
  param.setRequired(false);
  param.setShow(false);
  listParam.add(param);
  param=new ElementParameter(node);
  param.setName(EParameterName.IREPORT_PATH.getName());
  param.setCategory(EComponentCategory.TECHNICAL);
  param.setFieldType(EParameterFieldType.DIRECTORY);
  param.setDisplayName(EParameterName.IREPORT_PATH.getDisplayName());
  param.setNumRow(99);
  param.setShow(false);
  param.setValue(CorePlugin.getDefault().getPluginPreferences().getString(ITalendCorePrefConstants.IREPORT_PATH));
  param.setReadOnly(true);
  listParam.add(param);
  ComponentProperties compProperties=ComponentsUtils.getComponentProperties(getName());
  ComponentService service=ComponentsUtils.getComponentService();
  param=new ElementParameter(node);
  param.setName("String_Node_Str");
  param.setCategory(EComponentCategory.BASIC);
  param.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName());
  param.setFieldType(EParameterFieldType.PROPERTY_TYPE);
  param.setRepositoryValue(getRepositoryType());
  param.setValue("String_Node_Str");
  param.setNumRow(2);
  param.setShow(checkAssociatedFromComponentProperties(compProperties,service));
  ElementParameter newParam=new ElementParameter(node);
  newParam.setCategory(EComponentCategory.BASIC);
  newParam.setName(EParameterName.PROPERTY_TYPE.getName());
  newParam.setDisplayName(EParameterName.PROPERTY_TYPE.getDisplayName());
  newParam.setListItemsDisplayName(new String[]{TEXT_BUILTIN,TEXT_REPOSITORY});
  newParam.setListItemsDisplayCodeName(new String[]{BUILTIN,REPOSITORY});
  newParam.setListItemsValue(new String[]{BUILTIN,REPOSITORY});
  newParam.setValue(BUILTIN);
  newParam.setNumRow(param.getNumRow());
  newParam.setFieldType(EParameterFieldType.TECHNICAL);
  newParam.setShow(false);
  newParam.setShowIf(param.getName() + "String_Node_Str" + REPOSITORY+ "String_Node_Str");
  newParam.setReadOnly(param.isReadOnly());
  newParam.setNotShowIf(param.getNotShowIf());
  newParam.setContext(IGenericConstants.CONTEXT);
  newParam.setSerialized(true);
  newParam.setParentParameter(param);
  newParam=new ElementParameter(node);
  newParam.setCategory(EComponentCategory.BASIC);
  newParam.setName(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
  newParam.setDisplayName(EParameterName.REPOSITORY_PROPERTY_TYPE.getDisplayName());
  newParam.setListItemsDisplayName(new String[]{});
  newParam.setListItemsValue(new String[]{});
  newParam.setNumRow(param.getNumRow());
  newParam.setFieldType(EParameterFieldType.TECHNICAL);
  newParam.setValue("String_Node_Str");
  newParam.setShow(false);
  newParam.setRequired(true);
  newParam.setReadOnly(param.isReadOnly());
  newParam.setShowIf(param.getName() + "String_Node_Str" + REPOSITORY+ "String_Node_Str");
  newParam.setNotShowIf(param.getNotShowIf());
  newParam.setContext(IGenericConstants.CONTEXT);
  newParam.setSerialized(true);
  newParam.setParentParameter(param);
  listParam.add(param);
}