Program: 123571
Project: 123571
Buggy source:
@Override public void notifyChanged(Notification notification){
  int type=notification.getEventType();
  int featureId=notification.getFeatureID(XmlmapPackage.class);
switch (type) {
case Notification.ADD:
case Notification.REMOVE:
case Notification.REMOVE_MANY:
switch (featureId) {
case XmlmapPackage.INPUT_XML_TREE__NODES:
      refreshChildren();
    break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__FILTER_INCOMING_CONNECTIONS:
  refreshTargetConnections();
break;
}
break;
case Notification.SET:
switch (featureId) {
case XmlmapPackage.INPUT_XML_TREE__NODES:
refreshChildren();
break;
case XmlmapPackage.INPUT_XML_TREE__ACTIVATE_CONDENSED_TOOL:
getFigure().validate();
break;
case XmlmapPackage.INPUT_XML_TREE__LOOKUP_MODE:
case XmlmapPackage.INPUT_XML_TREE__MATCHING_MODE:
case XmlmapPackage.INPUT_XML_TREE__INNER_JOIN:
case XmlmapPackage.INPUT_XML_TREE__PERSISTENT:
case XmlmapPackage.INPUT_XML_TREE__MINIMIZED:
case XmlmapPackage.INPUT_XML_TREE__EXPRESSION_FILTER:
((InputXmlTreeFigure)getFigure()).update(featureId);
break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__MULTI_LOOPS:
if (getParent() instanceof XmlMapDataEditPart) {
List childPart=((XmlMapDataEditPart)getParent()).getChildren();
for (Object o : childPart) {
if (o instanceof OutputXmlTreeEditPart) {
OutputXmlTreeEditPart outputPart=(OutputXmlTreeEditPart)o;
boolean hasDocument=XmlMapUtil.hasDocument((OutputXmlTree)outputPart.getModel());
if (!hasDocument) {
OutputXmlTreeFigure outputTreeFigure=(OutputXmlTreeFigure)outputPart.getFigure();
outputTreeFigure.update(XmlmapPackage.ABSTRACT_IN_OUT_TREE__MULTI_LOOPS);
}
 else {
List nodeChild=outputPart.getChildren();
for (Object nc : nodeChild) {
if (nc instanceof OutputTreeNodeEditPart) {
refreshOutputNodeLoopFunctionBtn((OutputTreeNodeEditPart)nc);
}
}
}
}
}
((XmlMapGraphicViewer)getViewer()).getMapperManager().getProblemsAnalyser().checkProblems();
((XmlMapGraphicViewer)getViewer()).getMapperManager().getMapperUI().updateStatusBar();
}
}
}
}

Fixed version (ground truth):
@Override public void notifyChanged(Notification notification){
  int type=notification.getEventType();
  int featureId=notification.getFeatureID(XmlmapPackage.class);
switch (type) {
case Notification.ADD:
case Notification.REMOVE:
case Notification.REMOVE_MANY:
switch (featureId) {
case XmlmapPackage.INPUT_XML_TREE__NODES:
      refreshChildren();
    break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__FILTER_INCOMING_CONNECTIONS:
  refreshTargetConnections();
break;
}
break;
case Notification.SET:
switch (featureId) {
case XmlmapPackage.INPUT_XML_TREE__NODES:
refreshChildren();
break;
case XmlmapPackage.INPUT_XML_TREE__ACTIVATE_CONDENSED_TOOL:
getFigure().validate();
break;
case XmlmapPackage.INPUT_XML_TREE__LOOKUP_MODE:
case XmlmapPackage.INPUT_XML_TREE__MATCHING_MODE:
case XmlmapPackage.INPUT_XML_TREE__INNER_JOIN:
case XmlmapPackage.INPUT_XML_TREE__PERSISTENT:
case XmlmapPackage.INPUT_XML_TREE__MINIMIZED:
case XmlmapPackage.INPUT_XML_TREE__EXPRESSION_FILTER:
((InputXmlTreeFigure)getFigure()).update(featureId);
break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__MULTI_LOOPS:
if (getParent() instanceof XmlMapDataEditPart) {
List childPart=((XmlMapDataEditPart)getParent()).getChildren();
for (Object o : childPart) {
if (o instanceof OutputXmlTreeEditPart) {
OutputXmlTreeEditPart outputPart=(OutputXmlTreeEditPart)o;
boolean hasDocument=XmlMapUtil.hasDocument((OutputXmlTree)outputPart.getModel());
if (!hasDocument) {
OutputXmlTreeFigure outputTreeFigure=(OutputXmlTreeFigure)outputPart.getFigure();
outputTreeFigure.update(XmlmapPackage.ABSTRACT_IN_OUT_TREE__MULTI_LOOPS);
}
 else {
List nodeChild=outputPart.getChildren();
for (Object nc : nodeChild) {
if (nc instanceof OutputTreeNodeEditPart) {
refreshOutputNodeLoopFunctionBtn((OutputTreeNodeEditPart)nc);
}
}
}
}
}
boolean changed=clearOutputAggregateIfNeeded();
if (changed) {
((XmlMapDataEditPart)getParent()).refresh();
}
((XmlMapGraphicViewer)getViewer()).getMapperManager().getProblemsAnalyser().checkProblems();
((XmlMapGraphicViewer)getViewer()).getMapperManager().getMapperUI().updateStatusBar();
}
}
}
}