Program: 120535
Project: 120535
Buggy source:
@Override public void setPropertyValue(final String id,Object value){
  IElementParameter parameter=getElementParameter(id);
  if (id.contains(EParameterName.SCHEMA_TYPE.getName()) || id.contains(EParameterName.QUERYSTORE_TYPE.getName()) || id.contains(EParameterName.PROPERTY_TYPE.getName())|| id.contains(EParameterName.PROCESS_TYPE_PROCESS.getName())|| id.contains(EParameterName.VALIDATION_RULES.getName())|| id.contains(EParameterName.VALIDATION_RULE_TYPE.getName())) {
    setPropertyValue(EParameterName.UPDATE_COMPONENTS.getName(),Boolean.TRUE);
  }
  if (parameter == null) {
    return;
  }
  if (id.equals(EParameterName.LABEL.getName())) {
    labelToParse=(String)value;
    String newValue=ElementParameterParser.parse(this,labelToParse);
    setLabel(newValue);
  }
  if (id.equals(EParameterName.CONNECTION_FORMAT.getName())) {
    connectionToParse=(String)value;
  }
  if (id.equals(EParameterName.START.getName())) {
    setStart((Boolean)value);
  }
  if (id.equals(EParameterName.ACTIVATE.getName())) {
    setActivate(Boolean.valueOf(value.toString()));
  }
  if (id.equals(EParameterName.DUMMY.getName())) {
    setDummy((Boolean)value);
  }
  if (id.equals(EParameterName.VALIDATION_RULES.getName())) {
    setHasValidationRule((Boolean)value);
  }
  if (id.equals(EParameterName.HINT.getName())) {
    hintToParse=(String)value;
    String newValue=ElementParameterParser.parse(this,hintToParse);
    setShowHintText(newValue);
  }
  if (id.equals(EParameterName.UNIQUE_NAME.getName())) {
    parameter.setValue(value);
    setUniqueName((String)value);
  }
  if (id.equals(EParameterName.SHOW_HINT.getName())) {
    setShowHint((Boolean)value);
  }
  final String processPrefix="String_Node_Str";
  if (id.equals(processPrefix + EParameterName.PROCESS_TYPE_CONTEXT.getName())) {
    if (!CommonsPlugin.isHeadless()) {
      if (((Process)getProcess()).getEditor() != null && (!((Process)getProcess()).isDuplicate())) {
        ((AbstractMultiPageTalendEditor)((Process)getProcess()).getEditor()).updateChildrens();
      }
    }
  }
  if (parameter.getFieldType().equals(EParameterFieldType.MAPPING_TYPE)) {
    for (    IMetadataTable table : getMetadataList()) {
      table.setDbms((String)value);
    }
  }
  if (!id.equals(EParameterName.LABEL.getName()) && !id.equals(EParameterName.UNIQUE_NAME.getName()) && !id.equals(EParameterName.UPDATE_COMPONENTS.getName())) {
    needlibrary=true;
  }
  parameter.setValue(value);
  if (id.equals(EParameterName.INFORMATION.getName())) {
    firePropertyChange(UPDATE_STATUS,null,new Integer(this.currentStatus));
  }
  if (id.equals(EParameterName.FORLOOP.getName())) {
    firePropertyChange(RETURNS_CHANGED,null,null);
  }
  if (id.equals(EParameterName.VARIABLES.getName()) || id.equals("String_Node_Str") || id.equals(EParameterName.DEFAULT_MAP.getName())) {
    firePropertyChange(RETURNS_CHANGED,null,null);
  }
  updateVisibleData();
  if (id.equals("String_Node_Str") && this.getComponent().getName().equals("String_Node_Str")) {
    List<Connection> synchroConnList=(List<Connection>)this.getOutgoingConnections(EConnectionType.SYNCHRONIZE);
    for (    Connection synchroConn : synchroConnList) {
      synchroConn.updateName();
    }
  }
}

Fixed version (ground truth):
@Override public void setPropertyValue(final String id,Object value){
  IElementParameter parameter=getElementParameter(id);
  if (id.contains(EParameterName.SCHEMA_TYPE.getName()) || id.contains(EParameterName.QUERYSTORE_TYPE.getName()) || id.contains(EParameterName.PROPERTY_TYPE.getName())|| id.contains(EParameterName.PROCESS_TYPE_PROCESS.getName())|| id.contains(EParameterName.VALIDATION_RULES.getName())|| id.contains(EParameterName.VALIDATION_RULE_TYPE.getName())) {
    setPropertyValue(EParameterName.UPDATE_COMPONENTS.getName(),Boolean.TRUE);
  }
  if (parameter == null) {
    return;
  }
  if (id.equals(EParameterName.LABEL.getName())) {
    labelToParse=(String)value;
    String newValue=ElementParameterParser.parse(this,labelToParse);
    setLabel(newValue);
  }
  if (id.equals(EParameterName.CONNECTION_FORMAT.getName())) {
    connectionToParse=(String)value;
  }
  if (id.equals(EParameterName.START.getName())) {
    setStart((Boolean)value);
  }
  if (id.equals(EParameterName.ACTIVATE.getName())) {
    setActivate(Boolean.valueOf(value.toString()));
  }
  if (id.equals(EParameterName.DUMMY.getName())) {
    setDummy((Boolean)value);
  }
  if (id.equals(EParameterName.VALIDATION_RULES.getName())) {
    setHasValidationRule((Boolean)value);
  }
  if (id.equals(EParameterName.HINT.getName())) {
    hintToParse=(String)value;
    String newValue=ElementParameterParser.parse(this,hintToParse);
    setShowHintText(newValue);
  }
  if (id.equals(EParameterName.UNIQUE_NAME.getName())) {
    setUniqueName((String)value);
    parameter.setValue(value);
  }
  if (id.equals(EParameterName.SHOW_HINT.getName())) {
    setShowHint((Boolean)value);
  }
  final String processPrefix="String_Node_Str";
  if (id.equals(processPrefix + EParameterName.PROCESS_TYPE_CONTEXT.getName())) {
    if (!CommonsPlugin.isHeadless()) {
      if (((Process)getProcess()).getEditor() != null && (!((Process)getProcess()).isDuplicate())) {
        ((AbstractMultiPageTalendEditor)((Process)getProcess()).getEditor()).updateChildrens();
      }
    }
  }
  if (parameter.getFieldType().equals(EParameterFieldType.MAPPING_TYPE)) {
    for (    IMetadataTable table : getMetadataList()) {
      table.setDbms((String)value);
    }
  }
  if (!id.equals(EParameterName.LABEL.getName()) && !id.equals(EParameterName.UNIQUE_NAME.getName()) && !id.equals(EParameterName.UPDATE_COMPONENTS.getName())) {
    needlibrary=true;
  }
  parameter.setValue(value);
  if (id.equals(EParameterName.INFORMATION.getName())) {
    firePropertyChange(UPDATE_STATUS,null,new Integer(this.currentStatus));
  }
  if (id.equals(EParameterName.FORLOOP.getName())) {
    firePropertyChange(RETURNS_CHANGED,null,null);
  }
  if (id.equals(EParameterName.VARIABLES.getName()) || id.equals("String_Node_Str") || id.equals(EParameterName.DEFAULT_MAP.getName())) {
    firePropertyChange(RETURNS_CHANGED,null,null);
  }
  updateVisibleData();
  if (id.equals("String_Node_Str") && this.getComponent().getName().equals("String_Node_Str")) {
    List<Connection> synchroConnList=(List<Connection>)this.getOutgoingConnections(EConnectionType.SYNCHRONIZE);
    for (    Connection synchroConn : synchroConnList) {
      synchroConn.updateName();
    }
  }
}