Program: 81154
Project: 81154
Buggy source:
/** 
 * Adds the necessary field and methods to support event firing. <p/> Adds a new field: <code>protected final org.codehaus.griffon.runtime.core.EventRouter this$eventRouter = new org.codehaus.griffon.runtime.core.EventRouter()</code> <p/> Also adds support methods: <code>public void addEventListener(Object)</code><br/> <code>public void addEventListener(String, Closure)</code><br/> <code>public void addEventListener(String, RunnableWithArgs)</code><br/> <code>public void removeEventListener(Object)</code><br/> <code>public void removeEventListener(String, Closure)</code><br/> <code>public void removeEventListener(String, RunnableWithArgs)</code><br/> <code>public void publishEvent(String,List = [])</code><br/> <code>public void publishEventOutsideUI(String,List = [])</code><br/> <code>public void publishEventAsync(String,List = [])</code><br/> <code>public boolean isEventPublishingEnabled()</code><br/> <code>public void setEventPublishingEnabled(boolean)</code><br/>
 * @param declaringClass the class to which we add the support field and methods
 */
protected static void addEventRouter(ClassNode declaringClass){
  injectInterface(declaringClass,EVENT_HANDLER_CLASS);
  FieldNode erField=declaringClass.addField("String_Node_Str",ACC_FINAL | ACC_PRIVATE | ACC_SYNTHETIC,EVENT_ROUTER_CLASS,ctor(EVENT_ROUTER_CLASS,NO_ARGS));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.DYNAMIC_TYPE,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.CLOSURE_TYPE),LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(RUNNABLE_WITH_ARGS_CLASS,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.DYNAMIC_TYPE,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.CLOSURE_TYPE),LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(RUNNABLE_WITH_ARGS_CLASS,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(newClass(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.boolean_TYPE,params(),ClassNode.EMPTY_ARRAY,returns(call(field(erField),"String_Node_Str",NO_ARGS))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.boolean_TYPE,ENABLED)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(ENABLED)))));
}

Fixed version (ground truth):
/** 
 * Adds the necessary field and methods to support event firing. <p/> Adds a new field: <code>protected final org.codehaus.griffon.runtime.core.EventRouter this$eventRouter = new org.codehaus.griffon.runtime.core.EventRouter()</code> <p/> Also adds support methods: <code>public void addEventListener(Object)</code><br/> <code>public void addEventListener(String, Closure)</code><br/> <code>public void addEventListener(String, RunnableWithArgs)</code><br/> <code>public void removeEventListener(Object)</code><br/> <code>public void removeEventListener(String, Closure)</code><br/> <code>public void removeEventListener(String, RunnableWithArgs)</code><br/> <code>public void publishEvent(String,List = [])</code><br/> <code>public void publishEventOutsideUI(String,List = [])</code><br/> <code>public void publishEventAsync(String,List = [])</code><br/> <code>public boolean isEventPublishingEnabled()</code><br/> <code>public void setEventPublishingEnabled(boolean)</code><br/>
 * @param declaringClass the class to which we add the support field and methods
 */
protected static void addEventRouter(ClassNode declaringClass){
  injectInterface(declaringClass,EVENT_HANDLER_CLASS);
  FieldNode erField=declaringClass.addField("String_Node_Str",ACC_FINAL | ACC_PRIVATE | ACC_SYNTHETIC,EVENT_ROUTER_CLASS,ctor(EVENT_ROUTER_CLASS,NO_ARGS));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.DYNAMIC_TYPE,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.CLOSURE_TYPE),LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(RUNNABLE_WITH_ARGS_CLASS,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.DYNAMIC_TYPE,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.CLOSURE_TYPE),LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(RUNNABLE_WITH_ARGS_CLASS,LISTENER)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,LISTENER)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.STRING_TYPE,NAME),param(makeClassSafe(ClassHelper.LIST_TYPE),ARGS,new ListExpression())),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(NAME,ARGS)))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.boolean_TYPE,params(),ClassNode.EMPTY_ARRAY,returns(call(field(erField),"String_Node_Str",NO_ARGS))));
  injectMethod(declaringClass,new MethodNode("String_Node_Str",ACC_PUBLIC,ClassHelper.VOID_TYPE,params(param(ClassHelper.boolean_TYPE,ENABLED)),ClassNode.EMPTY_ARRAY,stmnt(call(field(erField),"String_Node_Str",vars(ENABLED)))));
}