nus-yam/ex-repair huggingface dataset:
Program: 15924
Project: 15924
Buggy source:
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}

Fixed version (ground truth):
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  if (srcpath != null) {
    final String src=BindELContext.pathToString(srcpath);
    if (_doneDependsOn != null && _doneDependsOn.contains(src)) {
      return;
    }
    _doneDependsOn=AllocUtil.inst.addSet(_doneDependsOn,src);
  }
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}
Program: 15925
Project: 15925
Buggy source:
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}

Fixed version (ground truth):
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  if (srcpath != null) {
    final String src=BindELContext.pathToString(srcpath);
    if (_doneDependsOn != null && _doneDependsOn.contains(src)) {
      return;
    }
    _doneDependsOn=AllocUtil.inst.addSet(_doneDependsOn,src);
  }
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}
Program: 15926
Project: 15926
Buggy source:
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}

Fixed version (ground truth):
/** 
 * Internal Use Only.
 */
public void addDependsOnTrackings(List<String> srcpath,String basepath,String[] props){
  if (srcpath != null) {
    final String src=BindELContext.pathToString(srcpath);
    if (_doneDependsOn != null && _doneDependsOn.contains(src)) {
      return;
    }
    _doneDependsOn=AllocUtil.inst.addSet(_doneDependsOn,src);
  }
  for (  String prop : props) {
    BindELContext.addDependsOnTracking(this,srcpath,basepath,prop);
  }
}
Program: 15927
Project: 15927
Buggy source:
@Command public void changeAllRed(){
  cars.forEach(new Consumer<Car>(){
    public void accept(    Car car){
      car.setColor("String_Node_Str");
    }
  }
);
  BindUtils.postNotifyChange(null,null,this,"String_Node_Str");
}

Fixed version (ground truth):
@Command public void changeAllRed(){
  for (  Car car : cars) {
    car.setColor("String_Node_Str");
  }
  BindUtils.postNotifyChange(null,null,this,"String_Node_Str");
}
Program: 15928
Project: 15928
Buggy source:
@Command public void changeAllRedWorkAround2(){
  cars.forEach(new Consumer<Car>(){
    public void accept(    Car car){
      car.setColor("String_Node_Str");
    }
  }
);
  BindUtils.postNotifyChange(null,null,this,"String_Node_Str");
}

Fixed version (ground truth):
@Command public void changeAllRedWorkAround2(){
  for (  Car car : cars) {
    car.setColor("String_Node_Str");
  }
  BindUtils.postNotifyChange(null,null,this,"String_Node_Str");
}
Program: 15929
Project: 15929
Buggy source:
@Command public void changeAllRedWorkAround(){
  cars.forEach(new Consumer<Car>(){
    public void accept(    Car car){
      car.setColor("String_Node_Str");
      BindUtils.postNotifyChange(null,null,car,"String_Node_Str");
    }
  }
);
}

Fixed version (ground truth):
@Command public void changeAllRedWorkAround(){
  for (  Car car : cars) {
    car.setColor("String_Node_Str");
    BindUtils.postNotifyChange(null,null,car,"String_Node_Str");
  }
}
Program: 15930
Project: 15930
Buggy source:
/** 
 * Generates end of the function (of zkx). It assumes the function name and the first parenthesis has been generated.
 * @param aupg whether the current page is caused by AU request
 */
private static void outEndJavaScriptFunc(Execution exec,Writer out,String extra,boolean aupg) throws IOException {
  final String ac=outResponseJavaScripts(exec,true);
  if (aupg) {
    if (extra.length() > 0 || ac.length() > 0) {
      out.write("String_Node_Str");
      if (ac.length() > 0) {
        out.write("String_Node_Str");
        out.write(ac);
        out.write(']');
      }
 else {
        out.write("String_Node_Str");
      }
      if (extra.length() > 0) {
        out.write("String_Node_Str");
        out.write(Strings.escape(extra,Strings.ESCAPE_JAVASCRIPT));
        out.write('\'');
      }
    }
    out.write(']');
  }
 else {
    if (extra.length() > 0 || ac.length() > 0) {
      out.write(',');
      out.write(extra.length() > 0 ? '9' : '0');
      if (ac.length() > 0) {
        out.write("String_Node_Str");
        out.write(ac);
        out.write(']');
      }
    }
    out.write("String_Node_Str");
    WebApp webApp=WebApps.getCurrent();
    Configuration configuration=webApp.getConfiguration();
    Map<String,DataHandlerInfo> dataHandlers=configuration.getDataHandlers();
    for (    Map.Entry<String,DataHandlerInfo> me : dataHandlers.entrySet()) {
      DataHandlerInfo handler=me.getValue();
      String script=handler.getScript();
      String scriptUri=handler.getScriptUri();
      if (scriptUri != null) {
        script=Devices.loadJavaScript(exec,scriptUri);
      }
      out.write("String_Node_Str" + me.getKey() + "String_Node_Str"+ script+ "String_Node_Str");
    }
    out.write(extra);
  }
}

Fixed version (ground truth):
/** 
 * Generates end of the function (of zkx). It assumes the function name and the first parenthesis has been generated.
 * @param aupg whether the current page is caused by AU request
 */
private static void outEndJavaScriptFunc(Execution exec,Writer out,String extra,boolean aupg) throws IOException {
  final String ac=outResponseJavaScripts(exec,true);
  if (aupg) {
    if (extra.length() > 0 || ac.length() > 0) {
      out.write("String_Node_Str");
      if (ac.length() > 0) {
        out.write("String_Node_Str");
        out.write(ac);
        out.write(']');
      }
 else {
        out.write("String_Node_Str");
      }
      if (extra.length() > 0) {
        out.write("String_Node_Str");
        out.write(Strings.escape(extra,Strings.ESCAPE_JAVASCRIPT));
        out.write('\'');
      }
    }
    out.write(']');
  }
 else {
    if (extra.length() > 0 || ac.length() > 0) {
      out.write(',');
      out.write(extra.length() > 0 ? '9' : '0');
      if (ac.length() > 0) {
        out.write("String_Node_Str");
        out.write(ac);
        out.write(']');
      }
    }
    out.write("String_Node_Str");
    out.write(extra);
  }
}
Program: 15931
Project: 15931
Buggy source:
/** 
 * Generates the content of a standalone component that the peer widget is not a child of the page widget at the client.
 * @param comp the component to render. It is null if no child componentat all.
 */
public static final void outStandalone(Execution exec,Component comp,Writer out) throws IOException {
  if (ComponentRedraws.beforeRedraw(false) >= 0)   throw new InternalError("String_Node_Str" + comp);
  final String extra;
  try {
    if (comp != null) {
      outDivTemplateBegin(out,comp.getUuid());
      outDivTemplateEnd(comp.getPage(),out);
    }
    out.write("String_Node_Str");
    if (comp != null)     ((ComponentCtrl)comp).redraw(out);
 else     out.write("String_Node_Str");
  }
  finally {
    extra=ComponentRedraws.afterRedraw();
  }
  outEndJavaScriptFunc(exec,out,extra,false);
  out.write("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Generates the content of a standalone component that the peer widget is not a child of the page widget at the client.
 * @param comp the component to render. It is null if no child componentat all.
 */
public static final void outStandalone(Execution exec,Component comp,Writer out) throws IOException {
  if (ComponentRedraws.beforeRedraw(false) >= 0)   throw new InternalError("String_Node_Str" + comp);
  final String extra;
  try {
    if (comp != null) {
      outDivTemplateBegin(out,comp.getUuid());
      outDivTemplateEnd(comp.getPage(),out);
    }
    out.write("String_Node_Str");
    WebApp webApp=WebApps.getCurrent();
    Configuration configuration=webApp.getConfiguration();
    Map<String,DataHandlerInfo> dataHandlers=configuration.getDataHandlers();
    for (    Map.Entry<String,DataHandlerInfo> me : dataHandlers.entrySet()) {
      DataHandlerInfo handler=me.getValue();
      String script=handler.getScript();
      String scriptUri=handler.getScriptUri();
      if (scriptUri != null) {
        script=Devices.loadJavaScript(exec,scriptUri);
      }
      out.write("String_Node_Str" + me.getKey() + "String_Node_Str"+ script+ "String_Node_Str");
    }
    out.write("String_Node_Str");
    if (comp != null)     ((ComponentCtrl)comp).redraw(out);
 else     out.write("String_Node_Str");
  }
  finally {
    extra=ComponentRedraws.afterRedraw();
  }
  outEndJavaScriptFunc(exec,out,extra,false);
  out.write("String_Node_Str");
}
Program: 15933
Project: 15933
Buggy source:
public boolean addShadowRootBefore(ShadowElement shadow,ShadowElement insertBefore){
  if (insertBefore == null)   return addShadowRoot(shadow);
  if (insertBefore.getShadowHost() != this)   throw new UiException("String_Node_Str" + insertBefore + "String_Node_Str");
  AuxInfo auxinf=initAuxInfo();
  if (!auxinf.seRoots.contains(shadow)) {
    auxinf.seRoots.add(auxinf.seRoots.indexOf(insertBefore),shadow);
    return true;
  }
  return false;
}

Fixed version (ground truth):
public boolean addShadowRootBefore(ShadowElement shadow,ShadowElement insertBefore){
  if (shadow == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (insertBefore == null)   return addShadowRoot(shadow);
  if (insertBefore.getShadowHost() != this)   throw new UiException("String_Node_Str" + insertBefore + "String_Node_Str");
  AuxInfo auxinf=initAuxInfo();
  if (!auxinf.seRoots.contains(shadow)) {
    auxinf.seRoots.add(auxinf.seRoots.indexOf(insertBefore),shadow);
    return true;
  }
  return false;
}
Program: 15934
Project: 15934
Buggy source:
/** 
 * Clone for the stub component (  {@link replaceWith}). 
 */
private AuxInfo cloneStub(AbstractComponent owner,boolean bListener){
  if (bListener && (evthds != null || listeners != null)) {
    final AuxInfo clone=new AuxInfo();
    clone.evthdsShared=evthdsShared;
    clone.evthds=evthds;
    clone.listeners=listeners;
    return clone;
  }
  return null;
}

Fixed version (ground truth):
/** 
 * Clone for the stub component (  {@link #replaceWith(AbstractComponent,boolean,boolean,boolean)}). 
 */
private AuxInfo cloneStub(AbstractComponent owner,boolean bListener){
  if (bListener && (evthds != null || listeners != null)) {
    final AuxInfo clone=new AuxInfo();
    clone.evthdsShared=evthdsShared;
    clone.evthds=evthds;
    clone.listeners=listeners;
    return clone;
  }
  return null;
}
Program: 15936
Project: 15936
Buggy source:
public boolean addShadowRoot(ShadowElement shadow){
  AuxInfo auxinf=initAuxInfo();
  if (auxinf.seRoots == null)   auxinf.seRoots=new LinkedList<ShadowElement>();
  if (!auxinf.seRoots.contains(shadow))   return auxinf.seRoots.add(shadow);
  return false;
}

Fixed version (ground truth):
public boolean addShadowRoot(ShadowElement shadow){
  if (shadow == null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (shadow.getShadowHost() == null) {
    ((ShadowElementCtrl)shadow).setShadowHost(this,null);
  }
 else   if (shadow.getShadowHost() != this) {
    throw new IllegalAccessError("String_Node_Str" + this + "String_Node_Str");
  }
  AuxInfo auxinf=initAuxInfo();
  if (auxinf.seRoots == null)   auxinf.seRoots=new LinkedList<ShadowElement>();
  if (!auxinf.seRoots.contains(shadow))   return auxinf.seRoots.add(shadow);
  return false;
}
Program: 15937
Project: 15937
Buggy source:
public ComponentDefinition getComponentDefinition(Class<? extends Component> cls,boolean recurse){
  final ComponentDefinition compdef=_compdefs.get(cls);
  if (!recurse || compdef != null)   return compdef;
  try {
    return _langdef.getComponentDefinition(cls);
  }
 catch (  DefinitionNotFoundException ex) {
  }
  return null;
}

Fixed version (ground truth):
public ComponentDefinition getComponentDefinition(Class<? extends Component> cls,boolean recurse){
  final ComponentDefinition compdef=_compdefs.get(cls);
  if (!recurse || compdef != null)   return compdef;
  try {
    return _langdef.getComponentDefinition(cls);
  }
 catch (  DefinitionNotFoundException ex) {
    try {
      return _langdef.getShadowDefinition(cls);
    }
 catch (    DefinitionNotFoundException eex) {
    }
  }
  return null;
}
Program: 15938
Project: 15938
Buggy source:
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException {
  s.defaultReadObject();
  _beanMap=new WeakIdentityMap<Object,Set<TrackerNode>>();
  _equalBeansMap=new EqualBeansMap();
  _compMap=initCompMap();
}

Fixed version (ground truth):
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException {
  s.defaultReadObject();
  _beanMap=new WeakIdentityMap<Object,Set<TrackerNode>>();
  _equalBeansMap=new EqualBeansMap();
}
Program: 15939
Project: 15939
Buggy source:
/** 
 * Loads a JavaScript file to client and execute it.
 * @param url the URL of the JavasScript file, it will be encoded with {@link Encodes#encodeURL(javax.servlet.ServletContext,javax.servlet.ServletRequest,javax.servlet.ServletResponse,String)}.
 * @param callback a callback script to execute when the JavaScript file has loaded.
 * @param cache true means the url will be cached and executed only once.
 */
public AuLoadScript(String url,String callback,boolean once){
  super("String_Node_Str",new Object[]{Executions.encodeURL(url),callback,once});
}

Fixed version (ground truth):
/** 
 * Loads a JavaScript file to client and execute it.
 * @param url the URL of the JavasScript file, it will be encoded with {@link Encodes#encodeURL(javax.servlet.ServletContext,javax.servlet.ServletRequest,javax.servlet.ServletResponse,String)}.
 * @param callback a callback script to execute when the JavaScript file has loaded.
 * @param once true means the url will be cached and executed only once.
 */
public AuLoadScript(String url,String callback,boolean once){
  super("String_Node_Str",new Object[]{Executions.encodeURL(url),callback,once});
}
Program: 15940
Project: 15940
Buggy source:
/** 
 * Merge the host into the current shadow, unlike  {@link #setShadowHost(Component,Component)}
 * @param child
 */
public boolean mergeToHost(Component host){
  if (host == null)   throw new UiException("String_Node_Str");
  if (host == _host)   return false;
  if (_parent == null)   throw new UiException("String_Node_Str");
  HtmlShadowElement oldParent=(HtmlShadowElement)_parent;
  if (host != _host) {
    HtmlShadowElement parent=(HtmlShadowElement)_parent;
    _parent=null;
    ((ComponentCtrl)host).addShadowRootBefore(this,(ShadowElement)parent);
    _host=host;
    ++parent._chdinf.modCntChd;
    --parent._chdinf.nChild;
    if (parent._chdinf.first == this)     parent._chdinf.first=this._next;
    if (parent._chdinf.last == this) {
      if (parent._chdinf.first != null)       parent._chdinf.last=this._prev;
 else       parent._chdinf.last=null;
    }
    return true;
  }
  return false;
}

Fixed version (ground truth):
/** 
 * Merge the host into the current shadow, unlike  {@link #setShadowHost(Component,Component)}
 * @param host
 */
public boolean mergeToHost(Component host){
  if (host == null)   throw new UiException("String_Node_Str");
  if (host == _host)   return false;
  if (_parent == null)   throw new UiException("String_Node_Str");
  HtmlShadowElement oldParent=(HtmlShadowElement)_parent;
  if (host != _host) {
    HtmlShadowElement parent=(HtmlShadowElement)_parent;
    _parent=null;
    ((ComponentCtrl)host).addShadowRootBefore(this,(ShadowElement)parent);
    _host=host;
    ++parent._chdinf.modCntChd;
    --parent._chdinf.nChild;
    if (parent._chdinf.first == this)     parent._chdinf.first=this._next;
    if (parent._chdinf.last == this) {
      if (parent._chdinf.first != null)       parent._chdinf.last=this._prev;
 else       parent._chdinf.last=null;
    }
    return true;
  }
  return false;
}
Program: 15941
Project: 15941
Buggy source:
/** 
 * Creates the distributed children after apply dynamic properties  {@link #setDynamicProperty}. <p> If a shadow element is created by ZK loader, this method is invoked automatically. Developers rarely need to invoke this method. <p> Default: it invokes   {@link #compose} to compose the shadow element.<p> The method will invoke the following methods in order. <ol> <li>Check if  {@link #isEffective()} to be true.</li><li>If true, invokes  {@link #compose} method to create the distributedchildren, otherwise, nothing happened.</li> </ol> <p> Instead of overriding this method, it is suggested to override {@link #compose}, since all other methods depend on   {@link #compose}(rather than   {@link #afterCompose}).
 */
public void afterCompose(){
  if (!_afterComposed) {
    _afterComposed=true;
    if (isEffective() && _firstInsertion == null) {
      Component host=getShadowHostIfAny();
      if (host == null)       throw new UiException("String_Node_Str" + this + "String_Node_Str");
      Object shadowInfo=ShadowElementsCtrl.getCurrentInfo();
      try {
        ShadowElementsCtrl.setCurrentInfo(this);
        compose(host);
      }
  finally {
        ShadowElementsCtrl.setCurrentInfo(shadowInfo);
      }
      Execution exec=Executions.getCurrent();
      if (exec != null) {
        String key="String_Node_Str" + host.getUuid();
        if (!exec.hasAttribute(key)) {
          exec.setAttribute(key,Boolean.TRUE);
          Events.postEvent(-250000,new Event(ON_REBUILD_SHADOW_TREE_LATER,host));
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Creates the distributed children after apply dynamic properties <p> If a shadow element is created by ZK loader, this method is invoked automatically. Developers rarely need to invoke this method. <p> Default: it invokes   {@link #compose} to compose the shadow element.<p> The method will invoke the following methods in order. <ol> <li>Check if  {@link #isEffective()} to be true.</li><li>If true, invokes  {@link #compose} method to create the distributedchildren, otherwise, nothing happened.</li> </ol> <p> Instead of overriding this method, it is suggested to override {@link #compose}, since all other methods depend on   {@link #compose}(rather than   {@link #afterCompose}).
 */
public void afterCompose(){
  if (!_afterComposed) {
    _afterComposed=true;
    if (isEffective() && _firstInsertion == null) {
      Component host=getShadowHostIfAny();
      if (host == null)       throw new UiException("String_Node_Str" + this + "String_Node_Str");
      Object shadowInfo=ShadowElementsCtrl.getCurrentInfo();
      try {
        ShadowElementsCtrl.setCurrentInfo(this);
        compose(host);
      }
  finally {
        ShadowElementsCtrl.setCurrentInfo(shadowInfo);
      }
      Execution exec=Executions.getCurrent();
      if (exec != null) {
        String key="String_Node_Str" + host.getUuid();
        if (!exec.hasAttribute(key)) {
          exec.setAttribute(key,Boolean.TRUE);
          Events.postEvent(-250000,new Event(ON_REBUILD_SHADOW_TREE_LATER,host));
        }
      }
    }
  }
}
Program: 15942
Project: 15942
Buggy source:
/** 
 * Adds a template info The previous src of the same name will be replaced.
 * @param src the src. If null, the attribute is removed.
 * @since 8.0.0
 */
public void addTemplateInfo(TemplateInfo info){
  if (info == null)   throw new IllegalArgumentException();
  if (_templatesInfo == null)   _templatesInfo=new LinkedHashMap<String,TemplateInfo>();
  _templatesInfo.put(info.getName(),info);
}

Fixed version (ground truth):
/** 
 * Adds a template info The previous src of the same name will be replaced.
 * @param info the src. If null, the attribute is removed.
 * @since 8.0.0
 */
public void addTemplateInfo(TemplateInfo info){
  if (info == null)   throw new IllegalArgumentException();
  if (_templatesInfo == null)   _templatesInfo=new LinkedHashMap<String,TemplateInfo>();
  _templatesInfo.put(info.getName(),info);
}
Program: 15943
Project: 15943
Buggy source:
/** 
 * Applies the event handlers and properties to the specified component. <p>It also invokes   {@link ComponentDefinition#applyProperties}. <p>Note: annotations are applied to the component when a component is created. So, this method doesn't and need not to copy them. See also   {@link org.zkoss.zk.ui.AbstractComponent#AbstractComponent}. <p>Note: the widget class (  {@link #setWidgetClass}) is set by this method.
 */
public void applyProperties(Component comp){
  _compdef.applyProperties(comp);
}

Fixed version (ground truth):
/** 
 * Applies the event handlers and properties to the specified component. <p>It also invokes   {@link ComponentDefinition#applyProperties}. <p>Note: annotations are applied to the component when a component is created. So, this method doesn't and need not to copy them. See also   {@link org.zkoss.zk.ui.AbstractComponent#AbstractComponent}.
 */
public void applyProperties(Component comp){
  _compdef.applyProperties(comp);
}
Program: 15944
Project: 15944
Buggy source:
/** 
 * Creates a shadow.
 * @param parent the parent node (never null)
 * @param compdef the component definition; never null
 * @param tag the tag name; Note: if component implements{@link DynamicTag}, this argument must be specified. If   {@link DynamicTag} is not implemented, this argument is optional.
 * @param params the map of attribute. Ignored if null.
 */
public ShadowInfo(NodeInfo parent,ComponentDefinition compdef,String tag,ConditionImpl cond){
  super(parent,cond);
  _tag=tag;
  if (compdef == null)   throw new IllegalArgumentException();
  _compdef=compdef;
}

Fixed version (ground truth):
/** 
 * Creates a shadow.
 * @param parent the parent node (never null)
 * @param compdef the component definition; never null
 * @param tag the tag name; Note: if component implements{@link DynamicTag}, this argument must be specified. If   {@link DynamicTag} is not implemented, this argument is optional.
 */
public ShadowInfo(NodeInfo parent,ComponentDefinition compdef,String tag,ConditionImpl cond){
  super(parent,cond);
  _tag=tag;
  if (compdef == null)   throw new IllegalArgumentException();
  _compdef=compdef;
}
Program: 15945
Project: 15945
Buggy source:
/** 
 * Constructs a shadow component definition. It is the component definition used to implement the shadow element.
 * @param langdef the language definition. It is null if it is definedas part of a page definition
 * @param pgdef the page definition. It is null if it is definedas part of a language definition.
 * @param templateURI the URI of the ZUML page to representing this shadow, like macroURI.
 * @since 8.0.0
 */
public static final ComponentDefinition newShadowDefinition(LanguageDefinition langdef,PageDefinition pgdef,String name,Class<? extends Component> cls,String templateURi){
  return new ShadowDefinitionImpl(langdef,pgdef,name,cls,templateURi);
}

Fixed version (ground truth):
/** 
 * Constructs a shadow component definition. It is the component definition used to implement the shadow element.
 * @param langdef the language definition. It is null if it is definedas part of a page definition
 * @param pgdef the page definition. It is null if it is definedas part of a language definition.
 * @param templateURI the URI of the ZUML page to representing this shadow, like macroURI.
 * @since 8.0.0
 */
public static final ComponentDefinition newShadowDefinition(LanguageDefinition langdef,PageDefinition pgdef,String name,Class<? extends Component> cls,String templateURI){
  return new ShadowDefinitionImpl(langdef,pgdef,name,cls,templateURI);
}
Program: 15946
Project: 15946
Buggy source:
/** 
 * Loads a JavaScript file to client and execute it.
 * @param url the JavasScript file path, it will be encoded with {@link Encodes#encodeURL(javax.servlet.ServletContext,javax.servlet.ServletRequest,javax.servlet.ServletResponse,String)}if any.
 * @param callback a callback script to execute when the JavaScript file has loaded.
 * @param cache true means the url will be cached and executed only once.
 * @since 8.0.0
 * @see Encodes#encodeURL(String)
 */
public static final void loadScript(String url,String callback,boolean cache){
  response(new AuLoadScript(url,callback,cache));
}

Fixed version (ground truth):
/** 
 * Loads a JavaScript file to client and execute it.
 * @param url the JavasScript file path, it will be encoded with {@link Encodes#encodeURL(javax.servlet.ServletContext,javax.servlet.ServletRequest,javax.servlet.ServletResponse,String)}if any.
 * @param callback a callback script to execute when the JavaScript file has loaded.
 * @param cache true means the url will be cached and executed only once.
 * @since 8.0.0
 * @see Encodes#encodeURL
 */
public static final void loadScript(String url,String callback,boolean cache){
  response(new AuLoadScript(url,callback,cache));
}
Program: 15947
Project: 15947
Buggy source:
/** 
 * Called after a shadow is detached from a host. <p>If a tree of shadows are detached to a host, this method called only against the root one. For example, if shadow A has a child B and A is detached from host P, then afterShadowDetached(A, P) is called. <p>Note: exception thrown by this method is ignored (but logged).
 * @param prevpage the previous host that shadow belongs to.
 * @since 8.0.0
 */
public void afterShadowDetached(ShadowElement shadow,Component prevhost);

Fixed version (ground truth):
/** 
 * Called after a shadow is detached from a host. <p>If a tree of shadows are detached to a host, this method called only against the root one. For example, if shadow A has a child B and A is detached from host P, then afterShadowDetached(A, P) is called. <p>Note: exception thrown by this method is ignored (but logged).
 * @param prevhost the previous host that shadow belongs to.
 * @since 8.0.0
 */
public void afterShadowDetached(ShadowElement shadow,Component prevhost);
Program: 15948
Project: 15948
Buggy source:
/** 
 * Returns whether the form has been modified 
 * @return whether the form has been modified.
 * @see Form#isDirty()
 */
public boolean isDirty();

Fixed version (ground truth):
/** 
 * Returns whether the form has been modified 
 * @return whether the form has been modified.
 */
public boolean isDirty();
Program: 15949
Project: 15949
Buggy source:
/** 
 * Returns the default short value. i.e. 0
 * @return
 */
public short getResetShortValue();

Fixed version (ground truth):
/** 
 * Returns the default short value. i.e. 0
 * @return short value
 */
public short getResetShortValue();
Program: 15950
Project: 15950
Buggy source:
/** 
 * Returns the default double value. i.e. 0.0d
 * @return
 */
public double getResetDoubleValue();

Fixed version (ground truth):
/** 
 * Returns the default double value. i.e. 0.0d
 * @return double value
 */
public double getResetDoubleValue();
Program: 15951
Project: 15951
Buggy source:
/** 
 * Returns the null value
 */
public Object getResetNullValue();

Fixed version (ground truth):
/** 
 * Returns the null value
 * @return Object null
 */
public Object getResetNullValue();
Program: 15952
Project: 15952
Buggy source:
/** 
 * Returns the default byte value. i.e. 0
 * @return
 */
public byte getResetByteValue();

Fixed version (ground truth):
/** 
 * Returns the default byte value. i.e. 0
 * @return byte value
 */
public byte getResetByteValue();
Program: 15953
Project: 15953
Buggy source:
/** 
 * Returns the default long value. i.e. 0L
 * @return
 */
public long getResetLongValue();

Fixed version (ground truth):
/** 
 * Returns the default long value. i.e. 0L
 * @return long value
 */
public long getResetLongValue();
Program: 15954
Project: 15954
Buggy source:
/** 
 * Returns the empty string.
 */
public String getResetEmptyStringValue();

Fixed version (ground truth):
/** 
 * Returns the empty string.
 * @return String empty
 */
public String getResetEmptyStringValue();
Program: 15955
Project: 15955
Buggy source:
/** 
 * Returns the default float value. i.e. 0.0f
 * @return
 */
public float getResetFloatValue();

Fixed version (ground truth):
/** 
 * Returns the default float value. i.e. 0.0f
 * @return float value
 */
public float getResetFloatValue();
Program: 15956
Project: 15956
Buggy source:
/** 
 * Returns the default boolean value. i.e. false
 * @return
 */
public boolean getResetBooleanValue();

Fixed version (ground truth):
/** 
 * Returns the default boolean value. i.e. false
 * @return boolean value
 */
public boolean getResetBooleanValue();
Program: 15957
Project: 15957
Buggy source:
/** 
 * Returns the default char value. i.e. '\u0000'
 * @return
 */
public char getResetCharValue();

Fixed version (ground truth):
/** 
 * Returns the default char value. i.e. '\u0000'
 * @return char value
 */
public char getResetCharValue();
Program: 15958
Project: 15958
Buggy source:
/** 
 * Returns the default int value. i.e. 0
 * @return
 */
public int getResetIntValue();

Fixed version (ground truth):
/** 
 * Returns the default int value. i.e. 0
 * @return int value
 */
public int getResetIntValue();
Program: 15959
Project: 15959
Buggy source:
/** 
 * Remove all field names for saving with the given Form.
 * @param fieldName field name to be saved into.
 * @since 8.0.0
 */
public Set<String> removeSaveFormFieldNames(Form self);

Fixed version (ground truth):
/** 
 * Remove all field names for saving with the given Form.
 * @since 8.0.0
 */
public Set<String> removeSaveFormFieldNames(Form self);
Program: 15960
Project: 15960
Buggy source:
/** 
 * Adds all field names for saving with the given Form.
 * @param fieldName field name to be saved into.
 * @since 8.0.0
 */
public void addSaveFormFieldName(Form form,Set<String> fieldNames);

Fixed version (ground truth):
/** 
 * Adds all field names for saving with the given Form.
 * @param fieldNames field name to be saved into.
 * @since 8.0.0
 */
public void addSaveFormFieldName(Form form,Set<String> fieldNames);
Program: 15961
Project: 15961
Buggy source:
/** 
 * Returns all field names for saving with the given Form.
 * @param fieldName field name to be saved into.
 * @since 8.0.0
 */
public Set<String> getSaveFormFieldNames(Form self);

Fixed version (ground truth):
/** 
 * Returns all field names for saving with the given Form.
 * @since 8.0.0
 */
public Set<String> getSaveFormFieldNames(Form self);
Program: 15962
Project: 15962
Buggy source:
/** 
 * Sets whether enable to show the link that jump to today in day view
 * @since 8.0.0
 * @param boolean
 */
public void setShowTodayLink(boolean showTodayLink){
  if (_showTodayLink != showTodayLink) {
    _showTodayLink=showTodayLink;
    smartUpdate("String_Node_Str",_showTodayLink);
  }
}

Fixed version (ground truth):
/** 
 * Sets whether enable to show the link that jump to today in day view
 * @since 8.0.0
 * @param showTodayLink show or hidden
 */
public void setShowTodayLink(boolean showTodayLink){
  if (_showTodayLink != showTodayLink) {
    _showTodayLink=showTodayLink;
    smartUpdate("String_Node_Str",_showTodayLink);
  }
}
Program: 15963
Project: 15963
Buggy source:
/** 
 * Sets whether enable to show the link that jump to today in day view
 * @since 8.0.0
 * @param boolean
 */
public void setShowTodayLink(boolean showTodayLink){
  if (_showTodayLink != showTodayLink) {
    _showTodayLink=showTodayLink;
    smartUpdate("String_Node_Str",_showTodayLink);
  }
}

Fixed version (ground truth):
/** 
 * Sets whether enable to show the link that jump to today in day view
 * @since 8.0.0
 * @param showTodayLink show or hidden
 */
public void setShowTodayLink(boolean showTodayLink){
  if (_showTodayLink != showTodayLink) {
    _showTodayLink=showTodayLink;
    smartUpdate("String_Node_Str",_showTodayLink);
  }
}
Program: 15964
Project: 15964
Buggy source:
public Set<LoadBinding> getLoadBindings(Object base,String prop){
  final LinkedHashSet<LoadBinding> bindings=new LinkedHashSet<LoadBinding>();
  final Set<TrackerNode> visited=new HashSet<TrackerNode>();
  collectLoadBindings(base,prop,bindings,visited);
  return bindings;
}

Fixed version (ground truth):
public Set<LoadBinding> getLoadBindings(Object base,String prop){
  final LinkedHashSet<LoadBinding> bindings=new LinkedHashSet<LoadBinding>();
  final Set<TrackerNode> visited=new LinkedHashSet<TrackerNode>();
  collectLoadBindings(base,prop,bindings,visited);
  return bindings;
}
Program: 15965
Project: 15965
Buggy source:
public void removeTrackings(Component comp){
  final Map<Object,TrackerNode> nodesMap=(Map<Object,TrackerNode>)_compMap.remove(comp);
  if (nodesMap != null) {
    final Set<TrackerNode> removed=new HashSet<TrackerNode>();
    final Collection<TrackerNode> nodes=nodesMap.values();
    for (    TrackerNode node : nodes) {
      removed.add(node);
      removed.addAll(node.getDependents());
    }
    removeAllFromBeanMap(removed);
    removeAllFromNullMap(removed);
  }
}

Fixed version (ground truth):
public void removeTrackings(Component comp){
  final Map<Object,TrackerNode> nodesMap=(Map<Object,TrackerNode>)_compMap.remove(comp);
  if (nodesMap != null) {
    final Set<TrackerNode> removed=new LinkedHashSet<TrackerNode>();
    final Collection<TrackerNode> nodes=nodesMap.values();
    for (    TrackerNode node : nodes) {
      removed.add(node);
      removed.addAll(node.getDependents());
    }
    removeAllFromBeanMap(removed);
    removeAllFromNullMap(removed);
  }
}
Program: 15966
Project: 15966
Buggy source:
private Set<TrackerNode> getDependents(Set<TrackerNode> parentnodes,String prop){
  final Set<TrackerNode> kidnodes=new HashSet<TrackerNode>();
  for (  TrackerNode node : parentnodes) {
    for (    TrackerNode kid : node.getDependents(prop)) {
      if (kid != null) {
        kidnodes.add(kid);
      }
    }
  }
  return kidnodes;
}

Fixed version (ground truth):
private Set<TrackerNode> getDependents(Set<TrackerNode> parentnodes,String prop){
  final Set<TrackerNode> kidnodes=new LinkedHashSet<TrackerNode>();
  for (  TrackerNode node : parentnodes) {
    for (    TrackerNode kid : node.getDependents(prop)) {
      if (kid != null) {
        kidnodes.add(kid);
      }
    }
  }
  return kidnodes;
}
Program: 15968
Project: 15968
Buggy source:
public BeanProxyHandler(T origin){
  _origin=origin;
}

Fixed version (ground truth):
public BeanProxyHandler(T origin){
  _origin=origin;
  cloneOneIfAny();
}
Program: 15970
Project: 15970
Buggy source:
@Test public void testEnumInProxy(){
  Pojo pojo=new Pojo();
  pojo.setCount(new Integer(1234));
  pojo.setLength(new Double(34.457656));
  pojo.setPrice(new BigDecimal("String_Node_Str"));
  Pojo proxy=ProxyHelper.createProxyIfAny(pojo);
  Assert.assertSame(pojo.getCount(),proxy.getCount());
  Assert.assertSame(pojo.getLength(),proxy.getLength());
  Assert.assertSame(pojo.getPrice(),proxy.getPrice());
}

Fixed version (ground truth):
@Test public void testEnumInProxy(){
  B02736Pojo pojo=new B02736Pojo();
  pojo.setCount(new Integer(1234));
  pojo.setLength(new Double(34.457656));
  pojo.setPrice(new BigDecimal("String_Node_Str"));
  B02736Pojo proxy=ProxyHelper.createProxyIfAny(pojo);
  Assert.assertSame(pojo.getCount(),proxy.getCount());
  Assert.assertSame(pojo.getLength(),proxy.getLength());
  Assert.assertSame(pojo.getPrice(),proxy.getPrice());
}
Program: 15972
Project: 15972
Buggy source:
private <T extends Object>T createProxyObject(T t){
  T p=ProxyHelper.createProxyIfAny(t);
  if (p instanceof FormProxyObject) {
    FormProxyObject fpo=(FormProxyObject)p;
    fpo.addFormProxyObjectListener(this);
  }
  return p;
}

Fixed version (ground truth):
private <T extends Object>T createProxyObject(T t){
  T p=isImmutableElements ? t : ProxyHelper.createProxyIfAny(t);
  if (p instanceof FormProxyObject) {
    FormProxyObject fpo=(FormProxyObject)p;
    fpo.addFormProxyObjectListener(this);
  }
  return p;
}
Program: 15973
Project: 15973
Buggy source:
public AbstractCollectionProxy(Collection<E> origin){
  _origin=origin;
  _cache=initCache();
}

Fixed version (ground truth):
public AbstractCollectionProxy(Collection<E> origin,Annotation[] callerAnnots){
  _origin=origin;
  _cache=initCache();
  if (callerAnnots != null) {
    for (    Annotation annot : callerAnnots) {
      if (annot.annotationType().isAssignableFrom(ImmutableElements.class)) {
        isImmutableElements=true;
        break;
      }
    }
  }
}
Program: 15975
Project: 15975
Buggy source:
public List<E> subList(int fromIndex,int toIndex){
  return ProxyHelper.createProxyIfAny(((List<E>)getCache()).subList(fromIndex,toIndex));
}

Fixed version (ground truth):
public List<E> subList(int fromIndex,int toIndex){
  return ProxyHelper.createProxyIfAny(((List<E>)getCache()).subList(fromIndex,toIndex),_callerAnnots);
}
Program: 15976
Project: 15976
Buggy source:
public ListProxy(Collection<E> origin){
  super(origin);
  resetFromOrigin();
}

Fixed version (ground truth):
public ListProxy(Collection<E> origin,Annotation[] callerAnnots){
  super(origin,callerAnnots);
  _callerAnnots=callerAnnots;
  resetFromOrigin();
}
Program: 15977
Project: 15977
Buggy source:
public MapProxy(Map<K,V> origin){
  _origin=origin;
  _cache=new LinkedHashMap<K,V>(origin.size());
  resetFromOrigin();
}

Fixed version (ground truth):
public MapProxy(Map<K,V> origin,Annotation[] callerAnnots){
  _origin=origin;
  _cache=new LinkedHashMap<K,V>(origin.size());
  if (callerAnnots != null) {
    for (    Annotation annot : callerAnnots) {
      if (annot.annotationType().isAssignableFrom(ImmutableElements.class)) {
        isImmutableElements=true;
        break;
      }
    }
  }
  resetFromOrigin();
}
Program: 15978
Project: 15978
Buggy source:
private <T extends Object>T createProxyObject(T t){
  T p=ProxyHelper.createProxyIfAny(t);
  if (p instanceof FormProxyObject) {
    FormProxyObject fpo=(FormProxyObject)p;
    fpo.addFormProxyObjectListener(this);
  }
  return p;
}

Fixed version (ground truth):
private <T extends Object>T createProxyObject(T t){
  T p=isImmutableElements ? t : ProxyHelper.createProxyIfAny(t);
  if (p instanceof FormProxyObject) {
    FormProxyObject fpo=(FormProxyObject)p;
    fpo.addFormProxyObjectListener(this);
  }
  return p;
}
Program: 15983
Project: 15983
Buggy source:
protected Object getShadowVariable0(AbstractComponent baseChild,String name,boolean recurse){
  Object val=getAttribute(name);
  if (val != null || hasAttribute(name))   return val;
  if (!(this instanceof ShadowElement)) {
    ComponentCtrl ctrl=this;
    List<HtmlShadowElement> shadowRoots=ctrl.getShadowRoots();
    if (!shadowRoots.isEmpty()) {
      Map<Component,Integer> indexCacheMap=getIndexCacheMap();
      try {
        if (indexCacheMap != null) {
          destroyIndexCacheMap();
        }
        initIndexCacheMap();
        for (        HtmlShadowElement shadow : shadowRoots) {
          val=shadow.resolveVariable(baseChild,name,recurse);
          if (val != null)           return val;
        }
      }
  finally {
        ShadowElementsCtrl.setDistributedIndexInfo(indexCacheMap);
      }
    }
  }
  if (recurse) {
    if (_parent != null)     return _parent.getShadowVariable0(this,name,recurse);
    if (this instanceof ShadowElement) {
      AbstractComponent shadowHost=(AbstractComponent)((ShadowElement)this).getShadowHost();
      if (shadowHost != null) {
        if (shadowHost._variableSeeking) {
          if (shadowHost.getParent() != null) {
            return ((AbstractComponent)shadowHost.getParent()).getShadowVariable(name,recurse);
          }
          return null;
        }
        return shadowHost.getShadowVariable(name,recurse);
      }
    }
  }
  return null;
}

Fixed version (ground truth):
protected Object getShadowVariable0(AbstractComponent baseChild,String name,boolean recurse){
  Object val=getAttribute(name);
  if (val != null || hasAttribute(name))   return val;
  if (!(this instanceof ShadowElement)) {
    ComponentCtrl ctrl=this;
    List<HtmlShadowElement> shadowRoots=ctrl.getShadowRoots();
    if (!shadowRoots.isEmpty()) {
      Map<Component,Integer> indexCacheMap=getIndexCacheMap();
      try {
        if (indexCacheMap != null) {
          destroyIndexCacheMap();
        }
        initIndexCacheMap();
        for (        HtmlShadowElement shadow : shadowRoots) {
          if (shadow.getShadowHost() != baseChild) {
switch (HtmlShadowElement.inRange(shadow,baseChild)) {
case IN_RANGE:
case FIRST:
case LAST:
              val=shadow.resolveVariable(baseChild,name,recurse);
            if (val != null)             return val;
          break;
      }
    }
 else {
      val=shadow.resolveVariable(baseChild,name,recurse);
      if (val != null)       return val;
    }
  }
}
  finally {
  ShadowElementsCtrl.setDistributedIndexInfo(indexCacheMap);
}
}
}
if (recurse) {
if (_parent != null) return _parent.getShadowVariable0(this,name,recurse);
if (this instanceof ShadowElement) {
AbstractComponent shadowHost=(AbstractComponent)((ShadowElement)this).getShadowHost();
if (shadowHost != null) {
  if (shadowHost._variableSeeking) {
    if (shadowHost.getParent() != null) {
      return ((AbstractComponent)shadowHost.getParent()).getShadowVariable(name,recurse);
    }
    return null;
  }
  return shadowHost.getShadowVariable(name,recurse);
}
}
}
return null;
}
Program: 15985
Project: 15985
Buggy source:
/** 
 * Merge the host into the current shadow, unlike  {@link #setShadowHost(Component,Component)}
 * @param child
 */
public boolean mergeToHost(Component host){
  if (host == null)   throw new UiException("String_Node_Str");
  if (host == _host)   return false;
  if (_parent == null)   throw new UiException("String_Node_Str");
  HtmlShadowElement oldParent=(HtmlShadowElement)_parent;
  if (host != _host) {
    HtmlShadowElement parent=(HtmlShadowElement)_parent;
    _parent=null;
    ((ComponentCtrl)host).addShadowRootBefore(this,(ShadowElement)parent);
    _host=host;
    ++parent._chdinf.modCntChd;
    --parent._chdinf.nChild;
    if (this._prev == null)     parent._chdinf.first=this._next;
    if (this._next == null)     parent._chdinf.last=this._prev;
    return true;
  }
  return false;
}

Fixed version (ground truth):
/** 
 * Merge the host into the current shadow, unlike  {@link #setShadowHost(Component,Component)}
 * @param child
 */
public boolean mergeToHost(Component host){
  if (host == null)   throw new UiException("String_Node_Str");
  if (host == _host)   return false;
  if (_parent == null)   throw new UiException("String_Node_Str");
  HtmlShadowElement oldParent=(HtmlShadowElement)_parent;
  if (host != _host) {
    HtmlShadowElement parent=(HtmlShadowElement)_parent;
    _parent=null;
    ((ComponentCtrl)host).addShadowRootBefore(this,(ShadowElement)parent);
    _host=host;
    ++parent._chdinf.modCntChd;
    --parent._chdinf.nChild;
    if (parent._chdinf.first == this)     parent._chdinf.first=this._next;
    if (parent._chdinf.last == this) {
      if (parent._chdinf.first != null)       parent._chdinf.last=this._prev;
 else       parent._chdinf.last=null;
    }
    return true;
  }
  return false;
}
Program: 15987
Project: 15987
Buggy source:
public Integer getCurrentIndex(Component comp){
  return comp.getParent().getChildren().indexOf(comp);
}

Fixed version (ground truth):
public int getCurrentIndex(Component comp,int oldIndex){
  int result=-1;
  if (comp instanceof Listitem) {
    result=((Listitem)comp).getIndex();
  }
 else   if (comp instanceof Row) {
    result=((Row)comp).getIndex();
  }
 else   if (comp instanceof Treeitem) {
    result=((Treeitem)comp).getIndex();
  }
 else   result=comp.getParent().getChildren().indexOf(comp);
  return result;
}
Program: 15988
Project: 15988
Buggy source:
protected void addItemReference(Component modelOwner,final Component comp,int index,String varnm){
  if (comp.getDefinition().isNative()) {
    for (    Component child : comp.getChildren()) {
      addItemReference(modelOwner,child,index,varnm);
    }
  }
 else {
    final Binder binder=BinderUtil.getBinder(comp,true);
    if (binder == null)     return;
    final String expression;
    if (comp.getAttribute(IS_TEMPLATE_MODEL_ENABLED_ATTR) != null) {
      expression=BindELContext.getModelName(modelOwner) + "String_Node_Str" + CURRENT_INDEX_RESOLVER_ATTR+ "String_Node_Str";
    }
 else {
      expression=BindELContext.getModelName(modelOwner) + "String_Node_Str" + index+ "String_Node_Str";
    }
    comp.setAttribute(varnm,new ReferenceBindingImpl(binder,comp,varnm,expression));
  }
}

Fixed version (ground truth):
protected void addItemReference(Component modelOwner,final Component comp,int index,String varnm){
  if (comp.getDefinition().isNative()) {
    for (    Component child : comp.getChildren()) {
      addItemReference(modelOwner,child,index,varnm);
    }
  }
 else {
    final Binder binder=BinderUtil.getBinder(comp,true);
    if (binder == null)     return;
    final String expression;
    if (comp.getAttribute(IS_TEMPLATE_MODEL_ENABLED_ATTR) != null) {
      expression=BindELContext.getModelName(modelOwner) + "String_Node_Str" + CURRENT_INDEX_RESOLVER_ATTR+ "String_Node_Str"+ index+ "String_Node_Str";
    }
 else {
      expression=BindELContext.getModelName(modelOwner) + "String_Node_Str" + index+ "String_Node_Str";
    }
    comp.setAttribute(varnm,new ReferenceBindingImpl(binder,comp,varnm,expression));
  }
}
Program: 15989
Project: 15989
Buggy source:
public Integer getCurrentIndex(Component comp){
  return comp.getParent().getChildren().indexOf(comp) / items.length;
}

Fixed version (ground truth):
public int getCurrentIndex(Component comp,int index){
  int result=-1;
  if (comp instanceof Listitem) {
    result=((Listitem)comp).getIndex();
  }
 else   if (comp instanceof Row) {
    result=((Row)comp).getIndex();
  }
 else   if (comp instanceof Treeitem) {
    result=((Treeitem)comp).getIndex();
  }
 else   result=comp.getParent().getChildren().indexOf(comp);
  result=result / items.length;
  return result;
}
Program: 15991
Project: 15991
Buggy source:
public static String toNodeString(Node next,StringBuffer path){
  if (next instanceof AstBracketSuffix) {
    final String bracketString=toNodeString(next.jjtGetChild(0),new StringBuffer());
    path.append("String_Node_Str").append(bracketString).append("String_Node_Str");
  }
 else   if (next instanceof AstValue) {
    for (int j=0, len=next.jjtGetNumChildren(); j < len; ++j) {
      final Node kid=next.jjtGetChild(j);
      toNodeString(kid,path);
    }
  }
 else   if (next instanceof AstDotSuffix) {
    path.append("String_Node_Str").append(next.getImage());
  }
 else {
    path.append(next.getImage());
  }
  return path.toString();
}

Fixed version (ground truth):
public static String toNodeString(Node next,StringBuffer path){
  if (next instanceof AstBracketSuffix) {
    final String bracketString=toNodeString(next.jjtGetChild(0),new StringBuffer());
    path.append("String_Node_Str").append(bracketString).append("String_Node_Str");
  }
 else   if (next instanceof AstValue) {
    for (int j=0, len=next.jjtGetNumChildren(); j < len; ++j) {
      final Node kid=next.jjtGetChild(j);
      toNodeString(kid,path);
    }
  }
 else   if (next instanceof AstDotSuffix) {
    path.append("String_Node_Str").append(next.getImage());
  }
 else   if (next instanceof AstMethodParameters) {
    StringBuilder subPath=new StringBuilder();
    for (int j=0, len=next.jjtGetNumChildren(); j < len; ++j) {
      if (j > 0)       subPath.append(',');
      final Node kid=next.jjtGetChild(j);
      toNodeString(kid,subPath);
    }
    path.append("String_Node_Str").append(subPath).append("String_Node_Str");
  }
 else {
    path.append(next.getImage());
  }
  return path.toString();
}
Program: 15992
Project: 15992
Buggy source:
private String toNodeString(ELContext ctx){
  final Node node0=(Node)ctx.getContext(Node.class);
  return BindELContext.toNodeString(node0,new StringBuffer());
}

Fixed version (ground truth):
private String toNodeString(ELContext ctx){
  final Node node0=(Node)ctx.getContext(Node.class);
  return BindELContext.toNodeString(node0,new StringBuilder());
}