Program: 121318
Project: 121318
Buggy source:
private void init(INode source,INode target,EConnectionType lineStyle,String connectorName,String metaName,String linkName,final boolean monitorConnection){
  if (lineStyle.equals(EConnectionType.ITERATE)) {
    performance=new IterateConnectionPerformance(this);
  }
 else   if (lineStyle.hasConnectionCategory(IConnectionCategory.DEPENDENCY)) {
    performance=new LiteralConnectionPerformance(this);
  }
 else {
    performance=new ParallelConnectionPerformance(this);
  }
  this.connectorName=connectorName;
  this.lineStyle=lineStyle;
  this.metaName=metaName;
  this.monitorConnection=monitorConnection;
  resuming=new ConnectionResuming(this);
  if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW)) {
    trace=new ConnectionTrace(this);
    createTraceParamters();
    IComponent component=ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName());
    if (component != null) {
      createMeterParameters((Process)source.getProcess());
    }
  }
  setName(linkName);
  if (trace != null) {
    trace.setOffset(label.getOffset());
  }
  if (resuming != null) {
    resuming.setOffset(label.getOffset());
  }
  if (source.getProcess().getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName()) && ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName()) != null) {
    this.source=source;
    createParallelizeParameters();
  }
  reconnect(source,target,lineStyle);
  updateName();
  if (lineStyle.equals(EConnectionType.RUN_IF)) {
    IElementParameter param=new ElementParameter(this);
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
      param.setFieldType(EParameterFieldType.MEMO_JAVA);
    break;
default :
  param.setFieldType(EParameterFieldType.MEMO_PERL);
}
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setNbLines(5);
param.setName(EParameterName.CONDITION.getName());
param.setDisplayName(EParameterName.CONDITION.getDisplayName());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
if (lineStyle.equals(EConnectionType.ROUTE_WHEN)) {
String[] strList={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
IElementParameter supportedLanguages=source.getElementParameter("String_Node_Str");
if (supportedLanguages != null) {
Object[] values=supportedLanguages.getListItemsValue();
if (values != null) {
  strList=new String[values.length];
  System.arraycopy(values,0,strList,0,values.length);
}
}
IElementParameter param=new ElementParameter(this);
param.setCategory(EComponentCategory.BASIC);
param.setName(EParameterName.ROUTETYPE.getName());
param.setDisplayName(EParameterName.ROUTETYPE.getDisplayName());
param.setListItemsValue(strList);
param.setListItemsDisplayName(strList);
param.setListItemsDisplayCodeName(strList);
param.setNbLines(1);
param.setFieldType(EParameterFieldType.CLOSED_LIST);
param.setValue(supportedLanguages.getValue());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
param.setFieldType(EParameterFieldType.MEMO_JAVA);
break;
default :
param.setFieldType(EParameterFieldType.MEMO_PERL);
}
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setNbLines(5);
param.setName(EParameterName.CONDITION.getName());
param.setDisplayName(EParameterName.CONDITION.getDisplayName());
param.setShow(true);
param.setNumRow(2);
addElementParameter(param);
if ("String_Node_Str".equals(source.getComponent().getName())) {
param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setName(EParameterName.ENDOFCHOICE.getName());
param.setDisplayName(EParameterName.ENDOFCHOICE.getDisplayName());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
}
if (lineStyle.equals(EConnectionType.ROUTE_CATCH)) {
IElementParameter param=new ElementParameter(this);
param.setCategory(EComponentCategory.BASIC);
param.setName(EParameterName.EXCEPTIONLIST.getName());
param.setDisplayName(EParameterName.EXCEPTIONLIST.getDisplayName());
param.setNbLines(5);
param.setFieldType(EParameterFieldType.TEXT);
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
if (lineStyle.equals(EConnectionType.ITERATE)) {
IElementParameter param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue(Boolean.FALSE);
param.setName(ENABLE_PARALLEL);
param.setDisplayName(Messages.getString("String_Node_Str"));
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setName(NUMBER_PARALLEL);
param.setDisplayName(Messages.getString("String_Node_Str"));
param.setShow(true);
param.setShowIf("String_Node_Str");
param.setNumRow(1);
param.setRequired(true);
addElementParameter(param);
}
IElementParameter param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.TECHNICAL);
param.setValue(Boolean.TRUE);
param.setName(EParameterName.ACTIVATE.getName());
param.setDisplayName(EParameterName.ACTIVATE.getDisplayName());
param.setShow(false);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.UNIQUE_NAME.getName());
param.setValue(this.getUniqueName());
param.setDisplayName(EParameterName.UNIQUE_NAME.getDisplayName());
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.ADVANCED);
param.setNumRow(1);
param.setReadOnly(true);
param.setShow(false);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.UPDATE_COMPONENTS.getName());
param.setValue(Boolean.FALSE);
param.setDisplayName(EParameterName.UPDATE_COMPONENTS.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setNumRow(5);
param.setReadOnly(true);
param.setRequired(false);
param.setShow(false);
addElementParameter(param);
if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW)) {
initTraceParamters();
}
if (PluginChecker.isTeamEdition()) {
boolean isLocalRepository=(ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider() instanceof ILocalRepositoryFactory);
param=new ElementParameter(this);
param.setName(EParameterName.RESUMING_CHECKPOINT.getName());
param.setValue(Boolean.FALSE);
param.setGroupDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setNumRow(2);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.RESUMLABEL.getName());
param.setDisplayName(EParameterName.RESUMLABEL.getDisplayName());
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setValue("String_Node_Str");
param.setNumRow(3);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.FAILURE_INSTRUCTIONS.getName());
param.setDisplayName(EParameterName.FAILURE_INSTRUCTIONS.getDisplayName());
param.setFieldType(EParameterFieldType.MEMO);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setNbLines(5);
param.setNumRow(4);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW) || lineStyle.hasConnectionCategory(IConnectionCategory.MERGE)) {
param=new ElementParameter(this);
param.setName(EParameterName.ACTIVEBREAKPOINT.getName());
param.setDisplayName(EParameterName.ACTIVEBREAKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BREAKPOINT);
param.setNumRow(13);
param.setValue(false);
param.setContextMode(false);
param.setShow(true);
addElementParameter(param);
IComponent component=ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName());
Node tmpNode=new Node(component,(Process)source.getProcess());
tmpNode.setTemplate(source.isTemplate());
tmpNode.setGeneratedByJobscriptBool(source.isGeneratedByJobscriptBool());
tmpNode.addInput(this);
IElementParameter tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(14);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(15);
ColumnListController.updateColumnList(tmpNode,null,true);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(16);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(17);
addElementParameter(tmpParam);
}
}
}
}

Fixed version (ground truth):
private void init(INode source,INode target,EConnectionType lineStyle,String connectorName,String metaName,String linkName,final boolean monitorConnection){
  if (lineStyle.equals(EConnectionType.ITERATE)) {
    performance=new IterateConnectionPerformance(this);
  }
 else   if (lineStyle.hasConnectionCategory(IConnectionCategory.DEPENDENCY)) {
    performance=new LiteralConnectionPerformance(this);
  }
 else {
    performance=new ParallelConnectionPerformance(this);
  }
  this.connectorName=connectorName;
  this.lineStyle=lineStyle;
  this.metaName=metaName;
  this.monitorConnection=monitorConnection;
  resuming=new ConnectionResuming(this);
  if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW)) {
    trace=new ConnectionTrace(this);
    createTraceParamters();
    IComponent component=ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName());
    if (component != null) {
      IProcess process=source.getProcess();
      if (process instanceof IProcess2) {
        IProcess2 process2=(IProcess2)process;
        if (!ComponentCategory.CATEGORY_4_MAPREDUCE.getName().equals(process2.getComponentsType())) {
          createMeterParameters(process2);
        }
      }
    }
  }
  setName(linkName);
  if (trace != null) {
    trace.setOffset(label.getOffset());
  }
  if (resuming != null) {
    resuming.setOffset(label.getOffset());
  }
  if (source.getProcess().getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName()) && ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName()) != null) {
    this.source=source;
    createParallelizeParameters();
  }
  reconnect(source,target,lineStyle);
  updateName();
  if (lineStyle.equals(EConnectionType.RUN_IF)) {
    IElementParameter param=new ElementParameter(this);
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
      param.setFieldType(EParameterFieldType.MEMO_JAVA);
    break;
default :
  param.setFieldType(EParameterFieldType.MEMO_PERL);
}
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setNbLines(5);
param.setName(EParameterName.CONDITION.getName());
param.setDisplayName(EParameterName.CONDITION.getDisplayName());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
if (lineStyle.equals(EConnectionType.ROUTE_WHEN)) {
String[] strList={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
IElementParameter supportedLanguages=source.getElementParameter("String_Node_Str");
if (supportedLanguages != null) {
Object[] values=supportedLanguages.getListItemsValue();
if (values != null) {
  strList=new String[values.length];
  System.arraycopy(values,0,strList,0,values.length);
}
}
IElementParameter param=new ElementParameter(this);
param.setCategory(EComponentCategory.BASIC);
param.setName(EParameterName.ROUTETYPE.getName());
param.setDisplayName(EParameterName.ROUTETYPE.getDisplayName());
param.setListItemsValue(strList);
param.setListItemsDisplayName(strList);
param.setListItemsDisplayCodeName(strList);
param.setNbLines(1);
param.setFieldType(EParameterFieldType.CLOSED_LIST);
param.setValue(supportedLanguages.getValue());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
switch (LanguageManager.getCurrentLanguage()) {
case JAVA:
param.setFieldType(EParameterFieldType.MEMO_JAVA);
break;
default :
param.setFieldType(EParameterFieldType.MEMO_PERL);
}
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setNbLines(5);
param.setName(EParameterName.CONDITION.getName());
param.setDisplayName(EParameterName.CONDITION.getDisplayName());
param.setShow(true);
param.setNumRow(2);
addElementParameter(param);
if ("String_Node_Str".equals(source.getComponent().getName())) {
param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setName(EParameterName.ENDOFCHOICE.getName());
param.setDisplayName(EParameterName.ENDOFCHOICE.getDisplayName());
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
}
if (lineStyle.equals(EConnectionType.ROUTE_CATCH)) {
IElementParameter param=new ElementParameter(this);
param.setCategory(EComponentCategory.BASIC);
param.setName(EParameterName.EXCEPTIONLIST.getName());
param.setDisplayName(EParameterName.EXCEPTIONLIST.getDisplayName());
param.setNbLines(5);
param.setFieldType(EParameterFieldType.TEXT);
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
}
if (lineStyle.equals(EConnectionType.ITERATE)) {
IElementParameter param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue(Boolean.FALSE);
param.setName(ENABLE_PARALLEL);
param.setDisplayName(Messages.getString("String_Node_Str"));
param.setShow(true);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.BASIC);
param.setValue("String_Node_Str");
param.setName(NUMBER_PARALLEL);
param.setDisplayName(Messages.getString("String_Node_Str"));
param.setShow(true);
param.setShowIf("String_Node_Str");
param.setNumRow(1);
param.setRequired(true);
addElementParameter(param);
}
IElementParameter param=new ElementParameter(this);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.TECHNICAL);
param.setValue(Boolean.TRUE);
param.setName(EParameterName.ACTIVATE.getName());
param.setDisplayName(EParameterName.ACTIVATE.getDisplayName());
param.setShow(false);
param.setNumRow(1);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.UNIQUE_NAME.getName());
param.setValue(this.getUniqueName());
param.setDisplayName(EParameterName.UNIQUE_NAME.getDisplayName());
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.ADVANCED);
param.setNumRow(1);
param.setReadOnly(true);
param.setShow(false);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.UPDATE_COMPONENTS.getName());
param.setValue(Boolean.FALSE);
param.setDisplayName(EParameterName.UPDATE_COMPONENTS.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setNumRow(5);
param.setReadOnly(true);
param.setRequired(false);
param.setShow(false);
addElementParameter(param);
if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW)) {
initTraceParamters();
}
if (PluginChecker.isTeamEdition()) {
boolean isLocalRepository=(ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider() instanceof ILocalRepositoryFactory);
param=new ElementParameter(this);
param.setName(EParameterName.RESUMING_CHECKPOINT.getName());
param.setValue(Boolean.FALSE);
param.setGroupDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setNumRow(2);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.RESUMLABEL.getName());
param.setDisplayName(EParameterName.RESUMLABEL.getDisplayName());
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setValue("String_Node_Str");
param.setNumRow(3);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
param=new ElementParameter(this);
param.setName(EParameterName.FAILURE_INSTRUCTIONS.getName());
param.setDisplayName(EParameterName.FAILURE_INSTRUCTIONS.getDisplayName());
param.setFieldType(EParameterFieldType.MEMO);
param.setCategory(EComponentCategory.RESUMING);
param.setGroup(RESUMING_CHECKPOINT);
param.setNbLines(5);
param.setNumRow(4);
param.setShow(true);
param.setReadOnly(isLocalRepository);
addElementParameter(param);
if (lineStyle.hasConnectionCategory(IConnectionCategory.FLOW) || lineStyle.hasConnectionCategory(IConnectionCategory.MERGE)) {
param=new ElementParameter(this);
param.setName(EParameterName.ACTIVEBREAKPOINT.getName());
param.setDisplayName(EParameterName.ACTIVEBREAKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BREAKPOINT);
param.setNumRow(13);
param.setValue(false);
param.setContextMode(false);
param.setShow(true);
addElementParameter(param);
IComponent component=ComponentsFactoryProvider.getInstance().get("String_Node_Str",ComponentCategory.CATEGORY_4_DI.getName());
Node tmpNode=new Node(component,(Process)source.getProcess());
tmpNode.setTemplate(source.isTemplate());
tmpNode.setGeneratedByJobscriptBool(source.isGeneratedByJobscriptBool());
tmpNode.addInput(this);
IElementParameter tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(14);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(15);
ColumnListController.updateColumnList(tmpNode,null,true);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(16);
addElementParameter(tmpParam);
}
tmpParam=tmpNode.getElementParameter("String_Node_Str");
if (tmpParam != null) {
tmpParam.setElement(this);
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(17);
addElementParameter(tmpParam);
}
}
}
}