Program: 28342
Project: 28342
Buggy source:
/** 
 * Adds  a new DOL descriptor instance to the descriptor instance associated with  this XMLNode
 * @param newDescriptor the new descriptor
 */
public void addDescriptor(Object newDescriptor){
  if (newDescriptor instanceof EjbReference) {
    descriptor.addEjbReferenceDescriptor((EjbReference)newDescriptor);
  }
 else   if (newDescriptor instanceof EnvironmentProperty) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str" + newDescriptor);
    descriptor.addEnvironmentProperty((EnvironmentProperty)newDescriptor);
  }
 else   if (newDescriptor instanceof WebComponentDescriptor) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str" + newDescriptor);
    descriptor.addWebComponentDescriptor((WebComponentDescriptor)newDescriptor);
  }
 else   if (newDescriptor instanceof TagLibConfigurationDescriptor) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str" + newDescriptor);
    if (descriptor.getJspConfigDescriptor() == null) {
      descriptor.setJspConfigDescriptor(new JspConfigDescriptorImpl());
    }
    descriptor.getJspConfigDescriptor().addTagLib((TagLibConfigurationDescriptor)newDescriptor);
  }
 else   if (newDescriptor instanceof JspConfigDescriptorImpl) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str" + newDescriptor);
    if (descriptor.getJspConfigDescriptor() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setJspConfigDescriptor((JspConfigDescriptorImpl)newDescriptor);
  }
 else   if (newDescriptor instanceof LoginConfiguration) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str" + newDescriptor);
    if (descriptor.getLoginConfiguration() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setLoginConfiguration((LoginConfiguration)newDescriptor);
  }
 else   if (newDescriptor instanceof SessionConfig) {
    if (descriptor.getSessionConfig() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setSessionConfig((SessionConfig)newDescriptor);
  }
 else {
    super.addDescriptor(newDescriptor);
  }
}

Fixed version (ground truth):
/** 
 * Adds  a new DOL descriptor instance to the descriptor instance associated with  this XMLNode
 * @param newDescriptor the new descriptor
 */
public void addDescriptor(Object newDescriptor){
  Logger logger=DOLUtils.getDefaultLogger();
  if (newDescriptor instanceof EjbReference) {
    descriptor.addEjbReferenceDescriptor((EjbReference)newDescriptor);
  }
 else   if (newDescriptor instanceof EnvironmentProperty) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + newDescriptor);
    }
    descriptor.addEnvironmentProperty((EnvironmentProperty)newDescriptor);
  }
 else   if (newDescriptor instanceof WebComponentDescriptor) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + newDescriptor);
    }
    descriptor.addWebComponentDescriptor((WebComponentDescriptor)newDescriptor);
  }
 else   if (newDescriptor instanceof TagLibConfigurationDescriptor) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + newDescriptor);
    }
    if (descriptor.getJspConfigDescriptor() == null) {
      descriptor.setJspConfigDescriptor(new JspConfigDescriptorImpl());
    }
    descriptor.getJspConfigDescriptor().addTagLib((TagLibConfigurationDescriptor)newDescriptor);
  }
 else   if (newDescriptor instanceof JspConfigDescriptorImpl) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + newDescriptor);
    }
    if (descriptor.getJspConfigDescriptor() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setJspConfigDescriptor((JspConfigDescriptorImpl)newDescriptor);
  }
 else   if (newDescriptor instanceof LoginConfiguration) {
    if (logger.isLoggable(Level.FINE)) {
      logger.fine("String_Node_Str" + newDescriptor);
    }
    if (descriptor.getLoginConfiguration() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setLoginConfiguration((LoginConfiguration)newDescriptor);
  }
 else   if (newDescriptor instanceof SessionConfig) {
    if (descriptor.getSessionConfig() != null) {
      throw new RuntimeException("String_Node_Str");
    }
    descriptor.setSessionConfig((SessionConfig)newDescriptor);
  }
 else {
    super.addDescriptor(newDescriptor);
  }
}