Program: 11766
Project: 11766
Buggy source:
@Override protected boolean readElement(IConfigurationElement element,boolean add){
  if (element.getName().equals(TAG_HANDLER)) {
    int priority=0;
    if (element.getAttribute(ATT_PRIORITY) != null) {
      priority=Integer.parseInt(element.getAttribute(ATT_PRIORITY));
    }
    String contributorClassName=element.getAttribute(ATT_CLASS);
    if (contributorClassName == null) {
      logMissingAttribute(element,ATT_CLASS);
    }
 else {
      String contributorName=element.getContributor().getName();
      if (add) {
        try {
          @SuppressWarnings("String_Node_Str") Class<ContentHandler> contributorHandlerClass=Platform.getBundle(element.getNamespaceIdentifier()).loadClass(contributorClassName);
          Map<String,String> parameters=new HashMap<String,String>();
          for (          IConfigurationElement parameter : element.getChildren("String_Node_Str")) {
            parameters.put(parameter.getAttribute("String_Node_Str"),parameter.getAttribute("String_Node_Str"));
          }
          ContentHandler contentHandler=parameters.isEmpty() ? contributorHandlerClass.newInstance() : contributorHandlerClass.getConstructor(Map.class).newInstance(parameters);
          ContentHandler.Registry.INSTANCE.put(priority,contentHandler);
          List<ContentHandler> contributions=CONTRIBUTION_MAP.get(contributorName);
          if (contributions == null) {
            CONTRIBUTION_MAP.put(contributorName,contributions=new ArrayList<ContentHandler>());
          }
          contributions.add(contentHandler);
        }
 catch (        Exception exception) {
          EcorePlugin.INSTANCE.log(exception);
        }
        return true;
      }
 else {
        List<ContentHandler> contributions=CONTRIBUTION_MAP.get(contributorName);
        if (contributions != null) {
          for (          List<ContentHandler> values : ContentHandler.Registry.INSTANCE.values()) {
            values.removeAll(contributions);
          }
        }
        CONTRIBUTION_MAP.remove(contributorName);
        return true;
      }
    }
  }
 else   if (element.getName().equals("String_Node_Str")) {
    return true;
  }
  return false;
}

Fixed version (ground truth):
@Override protected boolean readElement(IConfigurationElement element,boolean add){
  if (element.getName().equals(TAG_HANDLER)) {
    int priority=0;
    if (element.getAttribute(ATT_PRIORITY) != null) {
      priority=Integer.parseInt(element.getAttribute(ATT_PRIORITY));
    }
    String contributorClassName=element.getAttribute(ATT_CLASS);
    if (contributorClassName == null) {
      logMissingAttribute(element,ATT_CLASS);
    }
 else {
      String contributorName=element.getContributor().getName();
      if (add) {
        try {
          @SuppressWarnings("String_Node_Str") Class<ContentHandler> contributorHandlerClass=(Class<ContentHandler>)Platform.getBundle(element.getNamespaceIdentifier()).loadClass(contributorClassName);
          Map<String,String> parameters=new HashMap<String,String>();
          for (          IConfigurationElement parameter : element.getChildren("String_Node_Str")) {
            parameters.put(parameter.getAttribute("String_Node_Str"),parameter.getAttribute("String_Node_Str"));
          }
          ContentHandler contentHandler=parameters.isEmpty() ? contributorHandlerClass.newInstance() : contributorHandlerClass.getConstructor(Map.class).newInstance(parameters);
          ContentHandler.Registry.INSTANCE.put(priority,contentHandler);
          List<ContentHandler> contributions=CONTRIBUTION_MAP.get(contributorName);
          if (contributions == null) {
            CONTRIBUTION_MAP.put(contributorName,contributions=new ArrayList<ContentHandler>());
          }
          contributions.add(contentHandler);
        }
 catch (        Exception exception) {
          EcorePlugin.INSTANCE.log(exception);
        }
        return true;
      }
 else {
        List<ContentHandler> contributions=CONTRIBUTION_MAP.get(contributorName);
        if (contributions != null) {
          for (          List<ContentHandler> values : ContentHandler.Registry.INSTANCE.values()) {
            values.removeAll(contributions);
          }
        }
        CONTRIBUTION_MAP.remove(contributorName);
        return true;
      }
    }
  }
 else   if (element.getName().equals("String_Node_Str")) {
    return true;
  }
  return false;
}