Program: 94320
Project: 94320
Buggy source:
/** 
 * Add container factory extension point extensions
 * @param members to add
 */
protected void addContainerFactoryExtensions(IConfigurationElement[] members){
  final String method="String_Node_Str";
  Trace.entering(ECFPlugin.PLUGIN_ID,ECFDebugOptions.METHODS_ENTERING,ECFPlugin.class,method,members);
  for (int m=0; m < members.length; m++) {
    final IConfigurationElement member=members[m];
    final IExtension extension=member.getDeclaringExtension();
    Object exten=null;
    String name=null;
    try {
      exten=member.createExecutableExtension(CLASS_ATTRIBUTE);
      final String clazz=exten.getClass().getName();
      name=member.getAttribute(NAME_ATTRIBUTE);
      if (name == null) {
        name=clazz;
      }
      String description=member.getAttribute(DESCRIPTION_ATTRIBUTE);
      if (description == null) {
        description="String_Node_Str";
      }
      String s=member.getAttribute(SERVER_ATTRIBUTE);
      final boolean server=(s == null) ? false : Boolean.valueOf(s).booleanValue();
      s=member.getAttribute(HIDDEN_ATTRIBUTE);
      final boolean hidden=(s == null) ? false : Boolean.valueOf(s).booleanValue();
      final ContainerTypeDescription scd=new ContainerTypeDescription(name,(IContainerInstantiator)exten,description,server,hidden);
      final IContainerFactory factory=ContainerFactory.getDefault();
      if (factory.containsDescription(scd)) {
        throw new CoreException(new Status(IStatus.ERROR,getDefault().getBundle().getSymbolicName(),IStatus.ERROR,NLS.bind(Messages.ECFPlugin_Container_Name_Collision_Prefix,name,extension.getExtensionPointUniqueIdentifier()),null));
      }
      factory.addDescription(scd);
      Trace.trace(ECFPlugin.PLUGIN_ID,ECFDebugOptions.DEBUG,method + "String_Node_Str" + scd+ "String_Node_Str"+ factory);
    }
 catch (    final CoreException e) {
      logException(e.getStatus(),method,e);
    }
catch (    final Exception e) {
      logException(new Status(IStatus.ERROR,getDefault().getBundle().getSymbolicName(),IStatus.ERROR,NLS.bind(Messages.ECFPlugin_Container_Name_Collision_Prefix,name,extension.getExtensionPointUniqueIdentifier()),null),method,e);
    }
  }
}

Fixed version (ground truth):
/** 
 * Add container factory extension point extensions
 * @param members to add
 */
protected void addContainerFactoryExtensions(IConfigurationElement[] members){
  final String method="String_Node_Str";
  Trace.entering(ECFPlugin.PLUGIN_ID,ECFDebugOptions.METHODS_ENTERING,ECFPlugin.class,method,members);
  final IContainerFactory factory=ContainerFactory.getDefault();
  for (int m=0; m < members.length; m++) {
    final IConfigurationElement member=members[m];
    final IExtension extension=member.getDeclaringExtension();
    Object exten=null;
    String name=null;
    try {
      name=member.getAttribute(NAME_ATTRIBUTE);
      if (name != null) {
        ContainerTypeDescription ctd=factory.getDescriptionByName(name);
        if (ctd != null) {
          log(new Status(IStatus.WARNING,Activator.PLUGIN_ID,NLS.bind("String_Node_Str",name,member.getContributor().getName())));
          continue;
        }
      }
      exten=member.createExecutableExtension(CLASS_ATTRIBUTE);
      final String clazz=exten.getClass().getName();
      if (name == null) {
        name=clazz;
      }
      String description=member.getAttribute(DESCRIPTION_ATTRIBUTE);
      if (description == null) {
        description="String_Node_Str";
      }
      String s=member.getAttribute(SERVER_ATTRIBUTE);
      final boolean server=(s == null) ? false : Boolean.valueOf(s).booleanValue();
      s=member.getAttribute(HIDDEN_ATTRIBUTE);
      final boolean hidden=(s == null) ? false : Boolean.valueOf(s).booleanValue();
      final ContainerTypeDescription scd=new ContainerTypeDescription(name,(IContainerInstantiator)exten,description,server,hidden);
      if (factory.containsDescription(scd)) {
        log(new Status(IStatus.WARNING,Activator.PLUGIN_ID,NLS.bind("String_Node_Str",scd,member.getContributor().getName())));
        continue;
      }
      factory.addDescription(scd);
      Trace.trace(ECFPlugin.PLUGIN_ID,ECFDebugOptions.DEBUG,method + "String_Node_Str" + scd+ "String_Node_Str"+ factory);
    }
 catch (    final CoreException e) {
      logException(e.getStatus(),method,e);
    }
catch (    final Exception e) {
      logException(new Status(IStatus.ERROR,getDefault().getBundle().getSymbolicName(),IStatus.ERROR,NLS.bind(Messages.ECFPlugin_Container_Name_Collision_Prefix,name,extension.getExtensionPointUniqueIdentifier()),null),method,e);
    }
  }
}