Program: 118748
Project: 118748
Buggy source:
@Override public void propertyChange(final PropertyChangeEvent changeEvent){
  boolean needUpdateSubjob=false;
  if (changeEvent.getPropertyName().equals(Node.LOCATION)) {
    refreshVisuals();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.PERFORMANCE_DATA)) {
    refreshVisuals();
    getParent().refresh();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.INPUTS)) {
    refreshTargetConnections();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.OUTPUTS)) {
    refreshSourceConnections();
    refreshTargetConnections();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.SIZE)) {
    refreshVisuals();
    getParent().refresh();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.ICON_CHANGE)) {
    changeIcon((Node)changeEvent.getSource());
    refreshVisuals();
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.ACTIVATE.getName())) {
    if (((INode)getModel()).isActivate()) {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(-1);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
 else {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(Node.ALPHA_VALUE);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.DUMMY.getName())) {
    if (((INode)getModel()).isActivate()) {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(-1);
    }
 else {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(Node.ALPHA_VALUE);
    }
    ((NodeFigure)figure).repaint();
    refreshVisuals();
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.START.getName())) {
    if (((INode)getModel()).isStart()) {
      ((NodeFigure)figure).setStart(true);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
 else {
      ((NodeFigure)figure).setStart(false);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.HINT.getName())) {
    if (((Node)getModel()).isSetShowHint()) {
      ((NodeFigure)figure).setHint(((Node)getModel()).getShowHintText());
    }
 else {
      ((NodeFigure)figure).setHint("String_Node_Str");
    }
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.CONNECTION_FORMAT.getName())) {
    Node node=(Node)getModel();
    for (    IConnection conn : ((Node)getModel()).getOutgoingConnections()) {
      String connIdName=null;
      String oldName=conn.getUniqueName();
      if (conn instanceof Connection && conn.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
        node.getProcess().removeUniqueConnectionName(oldName);
        if (node.getProcess().checkValidConnectionName(node.getConnectionName(),false)) {
          connIdName=node.getProcess().generateUniqueConnectionName(node.getConnectionName());
        }
 else {
          connIdName=node.getProcess().generateUniqueConnectionName("String_Node_Str");
        }
        if (node.getProcess().checkValidConnectionName(connIdName)) {
          ((Connection)conn).setUniqueName(connIdName);
          node.getProcess().addUniqueConnectionName(connIdName);
          ((Connection)conn).setName(connIdName);
        }
 else {
          node.getProcess().addUniqueConnectionName(oldName);
        }
      }
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.REPAINT.getName())) {
    ((NodeFigure)figure).repaint();
    refreshVisuals();
    EditPart parentPart=getParent();
    if (parentPart != null) {
      parentPart.refresh();
    }
    needUpdateSubjob=true;
  }
  if (needUpdateSubjob) {
    EditPart editPart=getParent();
    if (editPart != null) {
      while ((!(editPart instanceof ProcessPart)) && (!(editPart instanceof SubjobContainerPart))) {
        editPart=editPart.getParent();
      }
      if (editPart instanceof SubjobContainerPart) {
        editPart.refresh();
      }
    }
  }
}

Fixed version (ground truth):
@Override public void propertyChange(final PropertyChangeEvent changeEvent){
  boolean needUpdateSubjob=false;
  if (!this.isActive()) {
    return;
  }
  if (changeEvent.getPropertyName().equals(Node.LOCATION)) {
    refreshVisuals();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.PERFORMANCE_DATA)) {
    refreshVisuals();
    getParent().refresh();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.INPUTS)) {
    refreshTargetConnections();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.OUTPUTS)) {
    refreshSourceConnections();
    refreshTargetConnections();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.SIZE)) {
    refreshVisuals();
    getParent().refresh();
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(Node.ICON_CHANGE)) {
    changeIcon((Node)changeEvent.getSource());
    refreshVisuals();
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.ACTIVATE.getName())) {
    if (((INode)getModel()).isActivate()) {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(-1);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
 else {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(Node.ALPHA_VALUE);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.DUMMY.getName())) {
    if (((INode)getModel()).isActivate()) {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(-1);
    }
 else {
      ((NodeFigure)figure).setDummy(((Node)getModel()).isDummy());
      ((NodeFigure)figure).setAlpha(Node.ALPHA_VALUE);
    }
    ((NodeFigure)figure).repaint();
    refreshVisuals();
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.START.getName())) {
    if (((INode)getModel()).isStart()) {
      ((NodeFigure)figure).setStart(true);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
 else {
      ((NodeFigure)figure).setStart(false);
      ((NodeFigure)figure).repaint();
      refreshVisuals();
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.HINT.getName())) {
    if (((Node)getModel()).isSetShowHint()) {
      ((NodeFigure)figure).setHint(((Node)getModel()).getShowHintText());
    }
 else {
      ((NodeFigure)figure).setHint("String_Node_Str");
    }
    needUpdateSubjob=true;
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.CONNECTION_FORMAT.getName())) {
    Node node=(Node)getModel();
    for (    IConnection conn : ((Node)getModel()).getOutgoingConnections()) {
      String connIdName=null;
      String oldName=conn.getUniqueName();
      if (conn instanceof Connection && conn.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
        node.getProcess().removeUniqueConnectionName(oldName);
        if (node.getProcess().checkValidConnectionName(node.getConnectionName(),false)) {
          connIdName=node.getProcess().generateUniqueConnectionName(node.getConnectionName());
        }
 else {
          connIdName=node.getProcess().generateUniqueConnectionName("String_Node_Str");
        }
        if (node.getProcess().checkValidConnectionName(connIdName)) {
          ((Connection)conn).setUniqueName(connIdName);
          node.getProcess().addUniqueConnectionName(connIdName);
          ((Connection)conn).setName(connIdName);
        }
 else {
          node.getProcess().addUniqueConnectionName(oldName);
        }
      }
    }
  }
 else   if (changeEvent.getPropertyName().equals(EParameterName.REPAINT.getName())) {
    ((NodeFigure)figure).repaint();
    refreshVisuals();
    EditPart parentPart=getParent();
    if (parentPart != null) {
      parentPart.refresh();
    }
    needUpdateSubjob=true;
  }
  if (needUpdateSubjob) {
    EditPart editPart=getParent();
    if (editPart != null) {
      while ((!(editPart instanceof ProcessPart)) && (!(editPart instanceof SubjobContainerPart))) {
        editPart=editPart.getParent();
      }
      if (editPart instanceof SubjobContainerPart) {
        editPart.refresh();
      }
    }
  }
}