Program: 90802
Project: 90802
Buggy source:
/** 
 * Create an AsynchAppender.
 * @param appenderRefs The Appenders to reference.
 * @param errorRef An optional Appender to write to if the queue is full or other errors occur.
 * @param blocking True if the Appender should wait when the queue is full. The default is true.
 * @param size The size of the event queue. The default is 128.
 * @param name The name of the Appender.
 * @param filter The Filter or null.
 * @param config The Configuration.
 * @param suppress "true" if exceptions should be hidden from the application, "false" otherwise.The default is "true".
 * @return The AsynchAppender.
 */
@PluginFactory public static <S extends Serializable>AsynchAppender<S> createAppender(@PluginElement("String_Node_Str") final AppenderRef[] appenderRefs,@PluginAttr("String_Node_Str") final String errorRef,@PluginAttr("String_Node_Str") final String blocking,@PluginAttr("String_Node_Str") final String size,@PluginAttr("String_Node_Str") final String name,@PluginElement("String_Node_Str") final Filter filter,@PluginConfiguration final Configuration config,@PluginAttr("String_Node_Str") final String suppress){
  if (name == null) {
    LOGGER.error("String_Node_Str");
    return null;
  }
  if (appenderRefs == null) {
    LOGGER.error("String_Node_Str",name);
  }
  final boolean isBlocking=blocking == null ? true : Boolean.valueOf(blocking);
  final int queueSize=size == null ? DEFAULT_QUEUE_SIZE : Integer.parseInt(size);
  final boolean handleExceptions=suppress == null ? true : Boolean.valueOf(suppress);
  return new AsynchAppender<S>(name,filter,appenderRefs,errorRef,queueSize,isBlocking,handleExceptions,config);
}

Fixed version (ground truth):
/** 
 * Create an AsynchAppender.
 * @param appenderRefs The Appenders to reference.
 * @param errorRef An optional Appender to write to if the queue is full or other errors occur.
 * @param blocking True if the Appender should wait when the queue is full. The default is true.
 * @param size The size of the event queue. The default is 128.
 * @param name The name of the Appender.
 * @param filter The Filter or null.
 * @param config The Configuration.
 * @param suppress "true" if exceptions should be hidden from the application, "false" otherwise.The default is "true".
 * @param < S > The actual type of the Serializable.
 * @return The AsynchAppender.
 */
@PluginFactory public static <S extends Serializable>AsynchAppender<S> createAppender(@PluginElement("String_Node_Str") final AppenderRef[] appenderRefs,@PluginAttr("String_Node_Str") final String errorRef,@PluginAttr("String_Node_Str") final String blocking,@PluginAttr("String_Node_Str") final String size,@PluginAttr("String_Node_Str") final String name,@PluginElement("String_Node_Str") final Filter filter,@PluginConfiguration final Configuration config,@PluginAttr("String_Node_Str") final String suppress){
  if (name == null) {
    LOGGER.error("String_Node_Str");
    return null;
  }
  if (appenderRefs == null) {
    LOGGER.error("String_Node_Str",name);
  }
  final boolean isBlocking=blocking == null ? true : Boolean.valueOf(blocking);
  final int queueSize=size == null ? DEFAULT_QUEUE_SIZE : Integer.parseInt(size);
  final boolean handleExceptions=suppress == null ? true : Boolean.valueOf(suppress);
  return new AsynchAppender<S>(name,filter,appenderRefs,errorRef,queueSize,isBlocking,handleExceptions,config);
}