nus-yam/ex-repair huggingface dataset:
Program: 143530
Project: 143530
Buggy source:
synchronized IRootObject getRootObject(int rootObjectId,int release) throws RepositoryException {
  CacheRecord cacheRecord=getCacheRecord(rootObjectId);
  if (cacheRecord == null) {
    return null;
  }
  if (release == 0) {
    release=cacheRecord.rootObjectMetaData.getActiveRelease();
  }
 else   if (release == -1) {
    release=cacheRecord.rootObjectMetaData.getLatestRelease();
  }
  Integer key=new Integer(release);
  IRootObject rootObject=(IRootObject)cacheRecord.rootObjects.get(key);
  if (rootObject == null) {
    rootObject=repository.loadRootObject(cacheRecord.rootObjectMetaData,release);
    cacheRecord.rootObjects.put(key,rootObject);
  }
  return rootObject;
}

Fixed version (ground truth):
synchronized IRootObject getRootObject(int rootObjectId,int release) throws RepositoryException {
  CacheRecord cacheRecord=getCacheRecord(rootObjectId);
  if (cacheRecord == null) {
    return null;
  }
  if (release == 0) {
    release=cacheRecord.rootObjectMetaData.getActiveRelease();
  }
 else   if (release == -1) {
    release=cacheRecord.rootObjectMetaData.getLatestRelease();
  }
  Integer key=new Integer(release);
  IRootObject rootObject=cacheRecord.rootObjects.get(key);
  if (rootObject == null) {
    rootObject=repository.loadRootObject(cacheRecord.rootObjectMetaData,release);
    cacheRecord.rootObjects.put(key,rootObject);
  }
  return rootObject;
}
Program: 143531
Project: 143531
Buggy source:
synchronized void removeRootObject(int rootObjectId) throws RepositoryException {
  Integer key=new Integer(rootObjectId);
  flushRootObject(rootObjectId);
  CacheRecord cacheRecord=(CacheRecord)rootObjectsById.get(key);
  if (cacheRecord != null) {
    rootObjectsById.remove(key);
    rootObjectsByName.remove(new RootObjectKey(cacheRecord.rootObjectMetaData.getName(),cacheRecord.rootObjectMetaData.getObjectTypeId()));
  }
}

Fixed version (ground truth):
synchronized void removeRootObject(int rootObjectId) throws RepositoryException {
  Integer key=new Integer(rootObjectId);
  flushRootObject(rootObjectId);
  CacheRecord cacheRecord=rootObjectsById.get(key);
  if (cacheRecord != null) {
    rootObjectsById.remove(key);
    rootObjectsByName.remove(new RootObjectKey(cacheRecord.rootObjectMetaData.getName(),cacheRecord.rootObjectMetaData.getObjectTypeId()));
  }
}
Program: 143532
Project: 143532
Buggy source:
/** 
 * Cache a new root object. THE ROOT OBJECT MUST CONTAIN VALID META DATA AND THE META DATA SHOULD HAVE ALREADY BEEN SAVED!
 * @param rootObject the new root object to add to the cache
 * @throws RepositoryException if the root object is already cached or does not have release 1
 */
private synchronized void cacheNewRootObject(IRootObject rootObject) throws RepositoryException {
  Integer key=new Integer(rootObject.getID());
  if (rootObjectsById.containsKey(key)) {
    throw new RepositoryException("String_Node_Str" + rootObjectsById + "String_Node_Str");
  }
  CacheRecord cacheRecord=new CacheRecord();
  cacheRecord.rootObjectMetaData=rootObject.getRootObjectMetaData();
  if (rootObject.getReleaseNumber() != 1) {
    throw new RepositoryException("String_Node_Str" + rootObject.getReleaseNumber());
  }
  cacheRecord.rootObjects=new HashMap();
  cacheRecord.rootObjects.put(new Integer(1),rootObject);
  rootObjectsById.put(key,cacheRecord);
  rootObjectsByName.put(new RootObjectKey(rootObject.getName(),rootObject.getTypeID()),cacheRecord);
}

Fixed version (ground truth):
/** 
 * Cache a new root object. THE ROOT OBJECT MUST CONTAIN VALID META DATA AND THE META DATA SHOULD HAVE ALREADY BEEN SAVED!
 * @param rootObject the new root object to add to the cache
 * @throws RepositoryException if the root object is already cached or does not have release 1
 */
private synchronized void cacheNewRootObject(IRootObject rootObject) throws RepositoryException {
  Integer key=new Integer(rootObject.getID());
  if (rootObjectsById.containsKey(key)) {
    throw new RepositoryException("String_Node_Str" + rootObjectsById + "String_Node_Str");
  }
  CacheRecord cacheRecord=new CacheRecord();
  cacheRecord.rootObjectMetaData=rootObject.getRootObjectMetaData();
  if (rootObject.getReleaseNumber() != 1) {
    throw new RepositoryException("String_Node_Str" + rootObject.getReleaseNumber());
  }
  cacheRecord.rootObjects=new HashMap<Integer,IRootObject>();
  cacheRecord.rootObjects.put(new Integer(1),rootObject);
  rootObjectsById.put(key,cacheRecord);
  rootObjectsByName.put(new RootObjectKey(rootObject.getName(),rootObject.getTypeID()),cacheRecord);
}
Program: 143533
Project: 143533
Buggy source:
synchronized void flush() throws RepositoryException {
  Iterator iterator=rootObjectsById.values().iterator();
  while (iterator.hasNext()) {
    CacheRecord cacheRecord=(CacheRecord)iterator.next();
    flushRootObjectMap(cacheRecord.rootObjects);
  }
}

Fixed version (ground truth):
synchronized void flush() throws RepositoryException {
  Iterator<CacheRecord> iterator=rootObjectsById.values().iterator();
  while (iterator.hasNext()) {
    CacheRecord cacheRecord=iterator.next();
    flushRootObjectMap(cacheRecord.rootObjects);
  }
}
Program: 143534
Project: 143534
Buggy source:
RootObjectCache(AbstractRepository repository,Collection metaDatas){
  this.repository=repository;
  rootObjectsById=new HashMap();
  rootObjectsByName=new HashMap();
  Iterator iterator=metaDatas.iterator();
  while (iterator.hasNext()) {
    add((RootObjectMetaData)iterator.next());
  }
}

Fixed version (ground truth):
RootObjectCache(AbstractRepository repository,Collection metaDatas){
  this.repository=repository;
  rootObjectsById=new HashMap<Integer,CacheRecord>();
  rootObjectsByName=new HashMap();
  Iterator iterator=metaDatas.iterator();
  while (iterator.hasNext()) {
    add((RootObjectMetaData)iterator.next(),false);
  }
}
Program: 143535
Project: 143535
Buggy source:
synchronized void flushRootObjectRelease(int rootObjectId,int release) throws RepositoryException {
  CacheRecord cacheRecord=(CacheRecord)rootObjectsById.get(new Integer(rootObjectId));
  if (cacheRecord != null) {
    if (release == 0) {
      release=cacheRecord.rootObjectMetaData.getActiveRelease();
    }
 else     if (release == -1) {
      release=cacheRecord.rootObjectMetaData.getLatestRelease();
    }
    Integer key=new Integer(release);
    IRootObject rootObject=(IRootObject)cacheRecord.rootObjects.get(key);
    if (rootObject != null) {
      rootObject.getChangeHandler().rootObjectIsFlushed();
      cacheRecord.rootObjects.remove(key);
    }
  }
}

Fixed version (ground truth):
synchronized void flushRootObjectRelease(int rootObjectId,int release) throws RepositoryException {
  CacheRecord cacheRecord=rootObjectsById.get(new Integer(rootObjectId));
  if (cacheRecord != null) {
    if (release == 0) {
      release=cacheRecord.rootObjectMetaData.getActiveRelease();
    }
 else     if (release == -1) {
      release=cacheRecord.rootObjectMetaData.getLatestRelease();
    }
    Integer key=new Integer(release);
    IRootObject rootObject=cacheRecord.rootObjects.get(key);
    if (rootObject != null) {
      rootObject.getChangeHandler().rootObjectIsFlushed();
      cacheRecord.rootObjects.remove(key);
    }
  }
}
Program: 143536
Project: 143536
Buggy source:
public synchronized boolean isRootObjectCached(String name,int objectTypeId,int release) throws RepositoryException {
  RootObjectMetaData rod=getRootObjectMetaData(name,objectTypeId);
  if (rod != null) {
    CacheRecord cacheRecord=getCacheRecord(rod.getRootObjectId());
    if (cacheRecord != null) {
      if (release == 0) {
        release=cacheRecord.rootObjectMetaData.getActiveRelease();
      }
 else       if (release == -1) {
        release=cacheRecord.rootObjectMetaData.getLatestRelease();
      }
      Integer key=new Integer(release);
      IRootObject rootObject=(IRootObject)cacheRecord.rootObjects.get(key);
      return rootObject != null;
    }
  }
  return false;
}

Fixed version (ground truth):
public synchronized boolean isRootObjectCached(String name,int objectTypeId,int release) throws RepositoryException {
  RootObjectMetaData rod=getRootObjectMetaData(name,objectTypeId);
  if (rod != null) {
    CacheRecord cacheRecord=getCacheRecord(rod.getRootObjectId());
    if (cacheRecord != null) {
      if (release == 0) {
        release=cacheRecord.rootObjectMetaData.getActiveRelease();
      }
 else       if (release == -1) {
        release=cacheRecord.rootObjectMetaData.getLatestRelease();
      }
      Integer key=new Integer(release);
      IRootObject rootObject=cacheRecord.rootObjects.get(key);
      return rootObject != null;
    }
  }
  return false;
}
Program: 143537
Project: 143537
Buggy source:
@Override public boolean isCellEditable(int row,int column){
  boolean isCellEditable=super.isCellEditable(row,column);
  if (isCellEditable) {
    Object o=getCellEditor(row,column);
    if (o instanceof CellAdapter && ((CellAdapter)o).getEditor() instanceof ISupportOnRenderCallback) {
      Object value=getValueAt(row,column);
      boolean isSelected=isCellSelected(row,column);
      Component c=((CellAdapter)o).getTableCellEditorComponent(this,value,isSelected,row,column);
      if (c instanceof IScriptableProvider) {
        IScriptable scriptable=((IScriptableProvider)c).getScriptObject();
        if (scriptable instanceof ISupportOnRenderCallback) {
          RenderEventExecutor renderEventExecutor=((ISupportOnRenderCallback)scriptable).getRenderEventExecutor();
          if (renderEventExecutor != null) {
            renderEventExecutor.fireOnRender(false);
            isCellEditable=c.isEnabled();
          }
        }
      }
    }
  }
  return isCellEditable;
}

Fixed version (ground truth):
@Override public boolean isCellEditable(int row,int column){
  boolean isCellEditable=super.isCellEditable(row,column);
  if (isCellEditable) {
    Object o=getCellEditor(row,column);
    if (o instanceof CellAdapter && ((CellAdapter)o).getEditor() instanceof IScriptableProvider && ((IScriptableProvider)((CellAdapter)o).getEditor()).getScriptObject() instanceof ISupportOnRenderCallback) {
      Object value=getValueAt(row,column);
      boolean isSelected=isCellSelected(row,column);
      Component c=((CellAdapter)o).getTableCellEditorComponent(this,value,isSelected,row,column);
      if (c instanceof IScriptableProvider) {
        IScriptable scriptable=((IScriptableProvider)c).getScriptObject();
        if (scriptable instanceof ISupportOnRenderCallback) {
          RenderEventExecutor renderEventExecutor=((ISupportOnRenderCallback)scriptable).getRenderEventExecutor();
          if (renderEventExecutor != null) {
            renderEventExecutor.fireOnRender(false);
            isCellEditable=c.isEnabled();
          }
        }
      }
    }
  }
  return isCellEditable;
}
Program: 143538
Project: 143538
Buggy source:
/** 
 * @param form
 */
public void deletePersistCopy(AbstractBase persist,boolean revertToOriginal){
  if (mainSolution == null && loginFlattenedSolution != null) {
    loginFlattenedSolution.deletePersistCopy(persist,revertToOriginal);
    return;
  }
  if (copySolution != null) {
    copySolution.removeChild(persist);
  }
  flush(persist);
  if (persist instanceof Form) {
    refreshSuperForms(persist);
  }
  AbstractBase realPersist=persist.getRuntimeProperty(CLONE_PROPERTY);
  boolean exists=realPersist != null || getAllObjectsAsList().indexOf(persist) != -1;
  if (!exists && revertToOriginal) {
    throw new RuntimeException("String_Node_Str" + persist + "String_Node_Str");
  }
 else   if (exists && !revertToOriginal) {
    allObjectscache=null;
    if (realPersist != null) {
      removedPersist.add(realPersist);
    }
 else {
      removedPersist.add(persist);
    }
  }
}

Fixed version (ground truth):
/** 
 * @param form
 */
public void deletePersistCopy(AbstractBase persist,boolean revertToOriginal){
  if (mainSolution == null && loginFlattenedSolution != null) {
    loginFlattenedSolution.deletePersistCopy(persist,revertToOriginal);
    return;
  }
  if (copySolution != null) {
    copySolution.removeChild(persist);
  }
  flush(persist);
  if (persist instanceof Form) {
    refreshSuperForms(persist);
  }
  AbstractBase realPersist=persist.getRuntimeProperty(CLONE_PROPERTY);
  boolean exists=realPersist != null || getAllObjectsAsList().indexOf(persist) != -1;
  if (!exists && revertToOriginal) {
    throw new RuntimeException("String_Node_Str" + persist + "String_Node_Str");
  }
 else   if (exists && !revertToOriginal) {
    if (realPersist != null) {
      removedPersist.add(realPersist);
      flush(realPersist);
    }
 else {
      removedPersist.add(persist);
    }
    flush(persist);
  }
}
Program: 143539
Project: 143539
Buggy source:
/** 
 * @param name
 * @return
 */
public Form revertForm(String name){
  Form form=getForm(name);
  if (form == null) {
    for (    IPersist persist : removedPersist) {
      if (persist instanceof Form && name.equals(((Form)persist).getName())) {
        removedPersist.remove(persist);
        flush(persist);
        form=getForm(name);
        break;
      }
    }
  }
  if (form != null) {
    deletePersistCopy(form,true);
    form=getForm(name);
    registerChangedForm(form);
  }
  return form;
}

Fixed version (ground truth):
public Form revertForm(String name){
  Form form=getForm(name);
  if (form == null) {
    for (    IPersist persist : removedPersist) {
      if (persist instanceof Form && name.equals(((Form)persist).getName())) {
        removedPersist.remove(persist);
        flush(persist);
        form=getForm(name);
        break;
      }
    }
  }
  if (form != null) {
    deletePersistCopy(form,true);
    form=getForm(name);
    registerChangedForm(form);
  }
  return form;
}
Program: 143541
Project: 143541
Buggy source:
private Object getListItemBorder(ListItem<IRecordInternal> listItem,boolean isSelected){
  return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.BORDER,false);
}

Fixed version (ground truth):
private String getListItemBorder(ListItem<IRecordInternal> listItem,boolean isSelected){
  return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.BORDER,false);
}
Program: 143544
Project: 143544
Buggy source:
private Object getListItemFont(ListItem<IRecordInternal> listItem,boolean isSelected){
  return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FONT,false);
}

Fixed version (ground truth):
private String getListItemFont(ListItem<IRecordInternal> listItem,boolean isSelected){
  return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FONT,false);
}
Program: 143545
Project: 143545
Buggy source:
private Object getStyleAttributeForListItem(ListItem<IRecordInternal> listItem,boolean isSelected,ISupportRowStyling.ATTRIBUTE rowStyleAttribute,boolean asInlineCSSString){
  Object listItemAttrValue=null;
  final IRecordInternal rec=listItem.getModelObject();
  if (rec != null && rec.getRawData() != null) {
    IStyleRule style=isSelected ? getRowSelectedStyle() : null;
    if (style != null && style.getAttributeCount() == 0)     style=null;
    if (style == null) {
      style=(listItem.getIndex() % 2 == 0) ? getRowOddStyle() : getRowEvenStyle();
    }
    if (asInlineCSSString) {
      listItemAttrValue=getStyleAttributeString(style,rowStyleAttribute);
    }
 else {
      listItemAttrValue=getStyleAttributeValue(style,rowStyleAttribute);
    }
  }
  return listItemAttrValue;
}

Fixed version (ground truth):
private String getStyleAttributeForListItem(ListItem<IRecordInternal> listItem,boolean isSelected,ISupportRowStyling.ATTRIBUTE rowStyleAttribute,boolean asInlineCSSString){
  String listItemAttrValue=null;
  final IRecordInternal rec=listItem.getModelObject();
  if (rec != null && rec.getRawData() != null) {
    IStyleRule style=isSelected ? getRowSelectedStyle() : null;
    if (style != null && style.getAttributeCount() == 0)     style=null;
    if (style == null) {
      style=(listItem.getIndex() % 2 == 0) ? getRowOddStyle() : getRowEvenStyle();
    }
    if (asInlineCSSString) {
      listItemAttrValue=getStyleAttributeString(style,rowStyleAttribute);
    }
 else {
      listItemAttrValue=getStyleAttributeValue(style,rowStyleAttribute);
    }
  }
  return listItemAttrValue;
}
Program: 143546
Project: 143546
Buggy source:
/** 
 * @param borderStyle
 * @param bstyle
 * @param bwidth
 * @param bcolor
 */
private void splitBorderStyle(Object borderStyle,StringBuilder bstyle,StringBuilder bwidth,StringBuilder bcolor){
  if (borderStyle != null) {
    Properties borderProperties=new Properties();
    ComponentFactoryHelper.createBorderCSSProperties(borderStyle.toString(),borderProperties);
    bstyle.append(borderProperties.getProperty("String_Node_Str"));
    if (bstyle.length() < 1)     bstyle.append("String_Node_Str");
    bwidth.append(borderProperties.getProperty("String_Node_Str"));
    bcolor.append(borderProperties.getProperty("String_Node_Str"));
    if (bcolor.length() < 1) {
      bcolor.append(borderProperties.getProperty("String_Node_Str","String_Node_Str"));
    }
 else {
      bcolor.append(getFirstToken(bcolor.toString()));
    }
  }
}

Fixed version (ground truth):
private void splitBorderStyle(Object borderStyle,StringBuilder bstyle,StringBuilder bwidth,StringBuilder bcolor){
  if (borderStyle != null) {
    Properties borderProperties=new Properties();
    ComponentFactoryHelper.createBorderCSSProperties(borderStyle.toString(),borderProperties);
    bstyle.append(borderProperties.getProperty("String_Node_Str","String_Node_Str"));
    bwidth.append(borderProperties.getProperty("String_Node_Str","String_Node_Str"));
    bcolor.append(borderProperties.getProperty("String_Node_Str","String_Node_Str"));
    if (bcolor.length() == 0) {
      bcolor.append(borderProperties.getProperty("String_Node_Str","String_Node_Str"));
    }
  }
}
Program: 143549
Project: 143549
Buggy source:
private void updateComponentsRenderState(AjaxRequestTarget target,String bgColor,String fgColor,String compFont,String compBorder,boolean isSelected,boolean ignoreStyles){
  Iterator<? extends Component> it=getListContainer().iterator();
  while (it.hasNext()) {
    Component component=it.next();
    if (component.isVisibleInHierarchy()) {
      Component innerComponent=CellContainer.getContentsForCell(component);
      if (!ignoreStyles) {
        WebCellBasedView.this.applyStyleOnComponent(innerComponent,bgColor,fgColor,compFont,compBorder);
      }
      boolean innerComponentChanged=innerComponent instanceof IProviderStylePropertyChanges && ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().isChanged();
      if (((updateComponentRenderState(innerComponent,isSelected)) || (!ignoreStyles)) && target != null) {
        target.addComponent(innerComponent.getParent() instanceof CellContainer ? innerComponent.getParent() : innerComponent);
        WebEventExecutor.generateDragAttach(innerComponent,target.getHeaderResponse());
        if (!innerComponent.isVisible()) {
          ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().setRendered();
        }
      }
 else       if (innerComponentChanged) {
        ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().setRendered();
      }
    }
  }
}

Fixed version (ground truth):
private void updateComponentsRenderState(AjaxRequestTarget target,String bgColor,String fgColor,String compFont,String listItemBorder,boolean isSelected,boolean ignoreStyles){
  Iterator<? extends Component> it=getListContainer().iterator();
  while (it.hasNext()) {
    Component component=it.next();
    if (component.isVisibleInHierarchy()) {
      Component innerComponent=CellContainer.getContentsForCell(component);
      if (!ignoreStyles) {
        WebCellBasedView.this.applyStyleOnComponent(innerComponent,bgColor,fgColor,compFont,listItemBorder);
      }
      boolean innerComponentChanged=innerComponent instanceof IProviderStylePropertyChanges && ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().isChanged();
      if (((updateComponentRenderState(innerComponent,isSelected)) || (!ignoreStyles)) && target != null) {
        target.addComponent(innerComponent.getParent() instanceof CellContainer ? innerComponent.getParent() : innerComponent);
        WebEventExecutor.generateDragAttach(innerComponent,target.getHeaderResponse());
        if (!innerComponent.isVisible()) {
          ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().setRendered();
        }
      }
 else       if (innerComponentChanged) {
        ((IProviderStylePropertyChanges)innerComponent).getStylePropertyChanges().setRendered();
      }
    }
  }
}
Program: 143550
Project: 143550
Buggy source:
private Object getListItemFgColor(ListItem<IRecordInternal> listItem,boolean isSelected,boolean asInlineCSSString){
  if (asInlineCSSString) {
    return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FGCOLOR,true);
  }
 else {
    return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FGCOLOR,false);
  }
}

Fixed version (ground truth):
private String getListItemFgColor(ListItem<IRecordInternal> listItem,boolean isSelected,boolean asInlineCSSString){
  if (asInlineCSSString) {
    return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FGCOLOR,true);
  }
 else {
    return getStyleAttributeForListItem(listItem,isSelected,ISupportRowStyling.ATTRIBUTE.FGCOLOR,false);
  }
}
Program: 143551
Project: 143551
Buggy source:
public void run(){
  boolean doLogOut=getClientInfo().getUserUid() != null;
  if (getSolution() != null) {
    doLogOut=closeSolution(false,solution_to_open_args);
  }
  if (doLogOut && getSolution() == null) {
    credentials.clear();
    getClientInfo().clearUserInfo();
  }
  if (RequestCycle.get() != null) {
    WebRequest webRequest=((WebRequestCycle)RequestCycle.get()).getWebRequest();
    WebResponse webResponse=((WebRequestCycle)RequestCycle.get()).getWebResponse();
    Cookie password=webRequest.getCookie("String_Node_Str");
    if (password != null) {
      password.setMaxAge(0);
      password.setPath("String_Node_Str");
      webResponse.addCookie(password);
    }
  }
}

Fixed version (ground truth):
@Override public void run(){
  putClientProperty(WEBCONSTANTS.WEBCLIENT_TEMPLATES_DIR,null);
}
Program: 143553
Project: 143553
Buggy source:
public synchronized void flushDataProvidersForTable(Table table){
  if (table != null && allProvidersForTable != null) {
    allProvidersForTable.remove(table);
  }
}

Fixed version (ground truth):
public synchronized void flushDataProvidersForTable(Table table){
  if (table != null && allProvidersForTable != null) {
    allProvidersForTable.remove(table);
    flushGlobalProviders();
  }
}
Program: 143554
Project: 143554
Buggy source:
/** 
 * @param persist
 */
private void flush(IPersist persist){
  if (persist instanceof Relation)   flushRelations();
  if (persist instanceof ValueList)   flushValuelists();
  if (persist instanceof Form)   flushForms();
  if (persist instanceof ScriptMethod)   flushScopes();
  if (persist instanceof ScriptVariable)   flushScriptVariables();
  flushDataProvidersForPersist(persist);
  flushDataProviderLookups(persist);
  allObjectscache=null;
  if (loginFlattenedSolution != null) {
    loginFlattenedSolution.flush(persist);
  }
}

Fixed version (ground truth):
/** 
 * @param persist
 */
private void flush(IPersist persist){
  if (persist instanceof Relation)   flushRelations();
  if (persist instanceof ValueList)   flushValuelists();
  if (persist instanceof Form)   flushForms();
  if (persist instanceof ScriptMethod)   flushScopes();
  if (persist instanceof ScriptVariable)   flushScriptVariables();
  if (persist instanceof ScriptCalculation || persist instanceof AggregateVariable)   flushGlobalProviders();
  flushDataProvidersForPersist(persist);
  flushDataProviderLookups(persist);
  allObjectscache=null;
  if (loginFlattenedSolution != null) {
    loginFlattenedSolution.flush(persist);
  }
}
Program: 143555
Project: 143555
Buggy source:
private synchronized void flushScriptVariables(){
  scopeCacheByName=null;
  globalProviders.clear();
}

Fixed version (ground truth):
private synchronized void flushScriptVariables(){
  scopeCacheByName=null;
  flushGlobalProviders();
}
Program: 143556
Project: 143556
Buggy source:
public void mouseDragged(MouseEvent e){
  if (startDrag)   exportDrag(SwingUtilities.convertMouseEvent((Component)e.getSource(),e,TableView.this));
  startDrag=false;
}

Fixed version (ground truth):
@Override public void mouseDragged(MouseEvent e){
  if (startDrag)   exportDrag(SwingUtilities.convertMouseEvent((Component)e.getSource(),e,TableView.this));
  startDrag=false;
}
Program: 143557
Project: 143557
Buggy source:
public void mouseMoved(MouseEvent e){
}

Fixed version (ground truth):
@Override public void mouseMoved(MouseEvent e){
}
Program: 143559
Project: 143559
Buggy source:
public void mouseDragged(MouseEvent e){
  if (startDrag)   exportDrag(SwingUtilities.convertMouseEvent((Component)e.getSource(),e,DataRenderer.this));
  startDrag=false;
}

Fixed version (ground truth):
@Override public void mouseDragged(MouseEvent e){
  if (startDrag)   exportDrag(SwingUtilities.convertMouseEvent((Component)e.getSource(),e,DataRenderer.this));
  startDrag=false;
}
Program: 143560
Project: 143560
Buggy source:
public void mouseMoved(MouseEvent e){
}

Fixed version (ground truth):
@Override public void mouseMoved(MouseEvent e){
}
Program: 143561
Project: 143561
Buggy source:
public void initDragNDrop(FormController formController,int clientDesignYOffset){
  this.yOffset=clientDesignYOffset;
  Form form=formController.getForm();
  if (form.getOnDragMethodID() > 0 || form.getOnDragEndMethodID() > 0 || form.getOnDragOverMethodID() > 0 || form.getOnDropMethodID() > 0) {
    this.dragNdropController=formController;
    final DragStartTester dragTester=new DragStartTester();
    addMouseMotionListener(dragTester);
    addMouseListener(dragTester);
    addContainerListener(new ContainerListener(){
      public void componentAdded(      ContainerEvent e){
        Component child=e.getChild();
        if (child instanceof JComponent) {
          child.addMouseMotionListener(dragTester);
          child.addMouseListener(dragTester);
          if (child instanceof ISupportDragNDropTextTransfer)           ((ISupportDragNDropTextTransfer)child).clearTransferHandler();
 else           if (child instanceof DataComboBox)           ((DataComboBox)child).disableEditorTransferHandler();
 else           ((JComponent)child).setTransferHandler(null);
        }
      }
      public void componentRemoved(      ContainerEvent e){
      }
    }
);
    setTransferHandler(FormDataTransferHandler.getInstance());
    new DropTarget(this,(DropTargetListener)FormDataTransferHandler.getInstance());
  }
}

Fixed version (ground truth):
public void initDragNDrop(FormController formController,int clientDesignYOffset){
  if (!GraphicsEnvironment.isHeadless()) {
    this.yOffset=clientDesignYOffset;
    Form form=formController.getForm();
    if (form.getOnDragMethodID() > 0 || form.getOnDragEndMethodID() > 0 || form.getOnDragOverMethodID() > 0 || form.getOnDropMethodID() > 0) {
      this.dragNdropController=formController;
      final DragStartTester dragTester=new DragStartTester();
      addMouseMotionListener(dragTester);
      addMouseListener(dragTester);
      addContainerListener(new ContainerListener(){
        public void componentAdded(        ContainerEvent e){
          Component child=e.getChild();
          if (child instanceof JComponent) {
            child.addMouseMotionListener(dragTester);
            child.addMouseListener(dragTester);
            if (child instanceof ISupportDragNDropTextTransfer)             ((ISupportDragNDropTextTransfer)child).clearTransferHandler();
 else             if (child instanceof DataComboBox)             ((DataComboBox)child).disableEditorTransferHandler();
 else             ((JComponent)child).setTransferHandler(null);
          }
        }
        public void componentRemoved(        ContainerEvent e){
        }
      }
);
      setTransferHandler(FormDataTransferHandler.getInstance());
      new DropTarget(this,(DropTargetListener)FormDataTransferHandler.getInstance());
    }
  }
}
Program: 143562
Project: 143562
Buggy source:
public synchronized SessionClient createDebugHeadlessClient(ServletRequest req,String userName,String password,String method,Object[] objects,String preferedSolution) throws Exception {
  if (debugHeadlessClient != null && debugHeadlessClient.getSolution() != null) {
    debugHeadlessClient.shutDown(true);
  }
  SolutionMetaData solutionMetaData=(currentSolution == null) ? null : currentSolution.getSolutionMetaData();
  if (preferedSolution != null && solutionMetaData != null && !preferedSolution.equals(solutionMetaData.getName())) {
    Map<String,Solution> modules=new HashMap<String,Solution>();
    currentSolution.getReferencedModulesRecursive(modules);
    if (modules.containsKey(preferedSolution)) {
      solutionMetaData=(SolutionMetaData)ApplicationServerSingleton.get().getLocalRepository().getRootObjectMetaData(preferedSolution,IRepository.SOLUTIONS);
    }
  }
  debugHeadlessClient=new DebugHeadlessClient(req,userName,password,method,objects,solutionMetaData,designerCallback){
    @Override public void shutDown(    boolean force){
      super.shutDown(force);
      debugHeadlessClient=null;
    }
  }
;
  return debugHeadlessClient;
}

Fixed version (ground truth):
public synchronized SessionClient createDebugHeadlessClient(ServletRequest req,String userName,String password,String method,Object[] objects,String preferedSolution) throws Exception {
  if (debugHeadlessClient != null && debugHeadlessClient.getSolution() != null) {
    debugHeadlessClient.shutDown(true);
  }
  SolutionMetaData solutionMetaData=(currentSolution == null) ? null : currentSolution.getSolutionMetaData();
  if (preferedSolution != null && solutionMetaData != null && !preferedSolution.equals(solutionMetaData.getName())) {
    Map<String,Solution> modules=new HashMap<String,Solution>();
    currentSolution.getReferencedModulesRecursive(modules);
    if (modules.containsKey(preferedSolution)) {
      solutionMetaData=(SolutionMetaData)ApplicationServerSingleton.get().getLocalRepository().getRootObjectMetaData(preferedSolution,IRepository.SOLUTIONS);
    }
  }
  debugHeadlessClient=new DebugHeadlessClient(req,userName,password,method,objects,solutionMetaData,designerCallback){
    @Override public void shutDown(    boolean force){
      super.shutDown(force);
      debugHeadlessClient=null;
    }
  }
;
  testAndStartDebugger();
  return debugHeadlessClient;
}
Program: 143563
Project: 143563
Buggy source:
public DebugHeadlessClient(ServletRequest req,String name,String pass,String method,Object[] methodArgs,SolutionMetaData solution,IDesignerCallback designerCallBack) throws Exception {
  super(req,name,pass,method,methodArgs,solution == null ? null : solution.getName());
  this.solution=solution;
  this.designerCallBack=designerCallBack;
  this.designerCallBack.testAndStartDebugger();
}

Fixed version (ground truth):
public DebugHeadlessClient(ServletRequest req,String name,String pass,String method,Object[] methodArgs,SolutionMetaData solution,IDesignerCallback designerCallBack) throws Exception {
  super(req,name,pass,method,methodArgs,solution == null ? null : solution.getName());
  this.solution=solution;
  this.designerCallBack=designerCallBack;
}
Program: 143564
Project: 143564
Buggy source:
public void addTab(String name,String text,Icon c,Component flp,String tooltip){
  int count=getTabCount();
  setTitleAt(count,text);
  add(flp,((IFormLookupPanel)flp).getFormName() + "String_Node_Str" + System.currentTimeMillis());
  if (flp instanceof JComponent) {
    JComponent jFLP=(JComponent)flp;
    jFLP.setOpaque(isOpaque());
  }
  if (count == 0) {
    setSelectedIndex(0);
  }
  if (tooltip != null) {
    ((JComponent)flp).setToolTipText(tooltip);
  }
  SwingUtilities.invokeLater(new Runnable(){
    public void run(){
      getParent().validate();
    }
  }
);
}

Fixed version (ground truth):
public void addTab(String name,String text,Icon c,Component flp,String tooltip){
  int count=getTabCount();
  setTitleAt(count,text);
  add(flp,((IFormLookupPanel)flp).getFormName() + "String_Node_Str" + System.nanoTime());
  if (flp instanceof JComponent) {
    JComponent jFLP=(JComponent)flp;
    jFLP.setOpaque(isOpaque());
  }
  if (count == 0) {
    setSelectedIndex(0);
  }
  if (tooltip != null) {
    ((JComponent)flp).setToolTipText(tooltip);
  }
  SwingUtilities.invokeLater(new Runnable(){
    public void run(){
      getParent().validate();
    }
  }
);
}
Program: 143565
Project: 143565
Buggy source:
/** 
 * Determines the preferred size of the container argument using this card layout.
 * @param parent the name of the parent container.
 * @return the preferred dimensions to lay out the subcomponents of the specified container.
 * @see java.awt.Container#getPreferredSize
 * @see java.awt.CardLayout#minimumLayoutSize
 */
public Dimension preferredLayoutSize(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    int ncomponents=vector.size();
    int w=0;
    int h=0;
    for (int i=0; i < ncomponents; i++) {
      Component comp=((Card)vector.get(i)).comp;
      if (comp.isVisible()) {
        Dimension d=comp.getPreferredSize();
        if (d.width > w) {
          w=d.width;
        }
        if (d.height > h) {
          h=d.height;
        }
      }
    }
    return new Dimension(insets.left + insets.right + w+ hgap * 2,insets.top + insets.bottom + h+ vgap * 2);
  }
}

Fixed version (ground truth):
/** 
 * Determines the preferred size of the container argument using this card layout.
 * @param parent the name of the parent container.
 * @return the preferred dimensions to lay out the subcomponents of the specified container.
 * @see java.awt.Container#getPreferredSize
 * @see java.awt.CardLayout#minimumLayoutSize
 */
public Dimension preferredLayoutSize(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    int ncomponents=componentList.size();
    int w=0;
    int h=0;
    for (int i=0; i < ncomponents; i++) {
      Component comp=((Card)componentList.get(i)).comp;
      if (comp.isVisible()) {
        Dimension d=comp.getPreferredSize();
        if (d.width > w) {
          w=d.width;
        }
        if (d.height > h) {
          h=d.height;
        }
      }
    }
    return new Dimension(insets.left + insets.right + w+ hgap * 2,insets.top + insets.bottom + h+ vgap * 2);
  }
}
Program: 143566
Project: 143566
Buggy source:
/** 
 * Flips to the next card of the specified container. If the currently visible card is the last one, this method flips to the first card in the layout.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#previous
 */
public void next(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    show(parent,(currentCard + 1) % vector.size(),true);
  }
}

Fixed version (ground truth):
/** 
 * Flips to the next card of the specified container. If the currently visible card is the last one, this method flips to the first card in the layout.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#previous
 */
public void next(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    show(parent,(currentCard + 1) % componentList.size(),true);
  }
}
Program: 143567
Project: 143567
Buggy source:
/** 
 * Removes the specified component from the layout.
 * @param comp the component to be removed.
 * @see java.awt.Container#remove(java.awt.Component)
 * @see java.awt.Container#removeAll()
 */
public void removeLayoutComponent(Component comp){
synchronized (comp.getTreeLock()) {
    int i=0;
    for (; i < vector.size(); i++) {
      if (((Card)vector.get(i)).comp == comp) {
        vector.remove(i);
        comp.setVisible(false);
        break;
      }
    }
    if (vector.isEmpty()) {
      currentCard=0;
    }
 else {
      if (currentCard > 0 && currentCard >= i) {
        currentCard--;
        layoutContainer(((Card)vector.get(currentCard)).comp.getParent());
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Removes the specified component from the layout.
 * @param comp the component to be removed.
 * @see java.awt.Container#remove(java.awt.Component)
 * @see java.awt.Container#removeAll()
 */
public void removeLayoutComponent(Component comp){
synchronized (comp.getTreeLock()) {
    int i=0;
    for (; i < componentList.size(); i++) {
      if (((Card)componentList.get(i)).comp == comp) {
        componentList.remove(i);
        comp.setVisible(false);
        break;
      }
    }
    if (componentList.isEmpty()) {
      currentCard=0;
    }
 else {
      if (currentCard > 0 && currentCard >= i) {
        currentCard--;
        layoutContainer(((Card)componentList.get(currentCard)).comp.getParent());
      }
    }
  }
}
Program: 143568
Project: 143568
Buggy source:
/** 
 * Flips to the previous card of the specified container. If the currently visible card is the first one, this method flips to the last card in the layout.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#next
 */
public void previous(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    int newIndex=(currentCard + vector.size() - 1) % vector.size();
    show(parent,newIndex,true);
  }
}

Fixed version (ground truth):
/** 
 * Flips to the previous card of the specified container. If the currently visible card is the first one, this method flips to the last card in the layout.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#next
 */
public void previous(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    int newIndex=(currentCard + componentList.size() - 1) % componentList.size();
    show(parent,newIndex,true);
  }
}
Program: 143569
Project: 143569
Buggy source:
/** 
 * Flips to the last card of the container.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#first
 */
public void last(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    show(parent,vector.size() - 1,true);
  }
}

Fixed version (ground truth):
/** 
 * Flips to the last card of the container.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.CardLayout#first
 */
public void last(Container parent){
synchronized (parent.getTreeLock()) {
    checkLayout(parent);
    show(parent,componentList.size() - 1,true);
  }
}
Program: 143570
Project: 143570
Buggy source:
public void show(Container parent,int newIndex,boolean checkIndex){
  if (!vector.isEmpty() && (currentCard < vector.size()) && (!checkIndex || (currentCard != newIndex))) {
    ((Card)vector.get(currentCard)).comp.setVisible(false);
    currentCard=newIndex;
    parent.validate();
  }
}

Fixed version (ground truth):
public void show(Container parent,int newIndex,boolean checkIndex){
  if (!componentList.isEmpty() && (!checkIndex || (currentCard != newIndex))) {
    ((Card)componentList.get(currentCard)).comp.setVisible(false);
    currentCard=newIndex;
    parent.validate();
  }
}
Program: 143571
Project: 143571
Buggy source:
/** 
 * Calculates the minimum size for the specified panel.
 * @param parent the name of the parent container in which to do the layout.
 * @return the minimum dimensions required to lay out the subcomponents of the specified container.
 * @see java.awt.Container#doLayout
 * @see java.awt.CardLayout#preferredLayoutSize
 */
public Dimension minimumLayoutSize(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    int ncomponents=vector.size();
    int w=0;
    int h=0;
    for (int i=0; i < ncomponents; i++) {
      Component comp=((Card)vector.get(i)).comp;
      Dimension d=comp.getMinimumSize();
      if (d.width > w) {
        w=d.width;
      }
      if (d.height > h) {
        h=d.height;
      }
    }
    return new Dimension(insets.left + insets.right + w+ hgap * 2,insets.top + insets.bottom + h+ vgap * 2);
  }
}

Fixed version (ground truth):
/** 
 * Calculates the minimum size for the specified panel.
 * @param parent the name of the parent container in which to do the layout.
 * @return the minimum dimensions required to lay out the subcomponents of the specified container.
 * @see java.awt.Container#doLayout
 * @see java.awt.CardLayout#preferredLayoutSize
 */
public Dimension minimumLayoutSize(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    int ncomponents=componentList.size();
    int w=0;
    int h=0;
    for (int i=0; i < ncomponents; i++) {
      Component comp=((Card)componentList.get(i)).comp;
      Dimension d=comp.getMinimumSize();
      if (d.width > w) {
        w=d.width;
      }
      if (d.height > h) {
        h=d.height;
      }
    }
    return new Dimension(insets.left + insets.right + w+ hgap * 2,insets.top + insets.bottom + h+ vgap * 2);
  }
}
Program: 143572
Project: 143572
Buggy source:
/** 
 * Lays out the specified container using this card layout. <p> Each component in the <code>parent</code> container is reshaped to be the size of the container, minus space for surrounding insets, horizontal gaps, and vertical gaps.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.Container#doLayout
 */
public void layoutContainer(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    if (!vector.isEmpty() && currentCard < vector.size()) {
      final Component comp=((Card)vector.get(currentCard)).comp;
      comp.setBounds(hgap + insets.left,vgap + insets.top,parent.getWidth() - (hgap * 2 + insets.left + insets.right),parent.getHeight() - (vgap * 2 + insets.top + insets.bottom));
      if (!comp.isVisible()) {
        comp.setVisible(true);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Lays out the specified container using this card layout. <p> Each component in the <code>parent</code> container is reshaped to be the size of the container, minus space for surrounding insets, horizontal gaps, and vertical gaps.
 * @param parent the name of the parent container in which to do the layout.
 * @see java.awt.Container#doLayout
 */
public void layoutContainer(Container parent){
synchronized (parent.getTreeLock()) {
    Insets insets=parent.getInsets();
    if (!componentList.isEmpty()) {
      final Component comp=((Card)componentList.get(currentCard)).comp;
      comp.setBounds(hgap + insets.left,vgap + insets.top,parent.getWidth() - (hgap * 2 + insets.left + insets.right),parent.getHeight() - (vgap * 2 + insets.top + insets.bottom));
      if (!comp.isVisible()) {
        comp.setVisible(true);
      }
    }
  }
}
Program: 143573
Project: 143573
Buggy source:
/** 
 * @deprecated replaced by <code>addLayoutComponent(Component, Object)</code>.
 */
@Deprecated public void addLayoutComponent(String name,Component comp){
synchronized (comp.getTreeLock()) {
    if (!vector.isEmpty()) {
      comp.setVisible(false);
    }
    for (int i=0; i < vector.size(); i++) {
      if (((Card)vector.get(i)).name.equals(name)) {
        vector.remove(i);
        break;
      }
    }
    vector.add(new Card(name,comp));
  }
}

Fixed version (ground truth):
/** 
 * @deprecated replaced by <code>addLayoutComponent(Component, Object)</code>.
 */
@Deprecated public void addLayoutComponent(String name,Component comp){
synchronized (comp.getTreeLock()) {
    if (!componentList.isEmpty()) {
      comp.setVisible(false);
    }
    for (int i=0; i < componentList.size(); i++) {
      if (((Card)componentList.get(i)).name.equals(name)) {
        componentList.remove(i);
        break;
      }
    }
    componentList.add(new Card(name,comp));
  }
}
Program: 143574
Project: 143574
Buggy source:
public void put(String name,ServoyDivDialog divDialog){
  divDialogsMap.put(name,divDialog);
  dialogsOrderedByOpenSequence.add(divDialog);
}

Fixed version (ground truth):
public void put(String name,ServoyDivDialog divDialog){
  ServoyDivDialog oldDivDialog=divDialogsMap.put(name,divDialog);
  if (oldDivDialog != null)   dialogsOrderedByOpenSequence.remove(oldDivDialog);
  dialogsOrderedByOpenSequence.add(divDialog);
}
Program: 143575
Project: 143575
Buggy source:
public void onClose(AjaxRequestTarget target){
  divDialogRepeater.remove(divDialog);
  divDialogs.remove(divDialog.getPageMapName());
  if (divDialogs.size() == 0) {
    divDialogsParent.setVisible(false);
  }
 else {
    jsActionBuffer.addAction(new DivDialogAction(divDialog,DivDialogAction.OP_DIALOG_ADDED_OR_REMOVED,new Object[]{divDialogsParent}));
  }
  divDialog.setPageMapName(null);
  restoreFocusedComponentInParentIfNeeded();
  WebEventExecutor.generateResponse(target,findPage());
}

Fixed version (ground truth):
public void onClose(AjaxRequestTarget target){
  divDialogRepeater.remove(divDialog);
  String divDialogPageMapName=divDialog.getPageMapName();
  if (divDialogs.get(divDialogPageMapName) == divDialog) {
    divDialogs.remove(divDialogPageMapName);
  }
  if (divDialogs.size() == 0) {
    divDialogsParent.setVisible(false);
  }
 else {
    jsActionBuffer.addAction(new DivDialogAction(divDialog,DivDialogAction.OP_DIALOG_ADDED_OR_REMOVED,new Object[]{divDialogsParent}));
  }
  divDialog.setPageMapName(null);
  restoreFocusedComponentInParentIfNeeded();
  WebEventExecutor.generateResponse(target,findPage());
}
Program: 143578
Project: 143578
Buggy source:
protected void instrumentAndReplaceBody(MarkupStream markupStream,ComponentTag openTag,CharSequence bodyText){
  boolean designMode=false;
  IFormUIInternal<?> formui=findParent(IFormUIInternal.class);
  if (formui != null && formui.isDesignMode()) {
    designMode=true;
  }
  String cssId=null;
  if (WebBaseButton.getImageDisplayURL(this) != null) {
    cssId=getMarkupId() + "String_Node_Str";
  }
  int anchor=Utils.getAsBoolean(application.getRuntimeProperties().get("String_Node_Str")) ? anchors : 0;
  replaceComponentTagBody(markupStream,openTag,instrumentBodyText(this,bodyText,halign,valign,false,border,margin,cssId,(char)getDisplayedMnemonic(),getMarkupId(),getImageDisplayURL(this),size == null ? 0 : size.height,true,designMode ? null : cursor,false,anchor));
}

Fixed version (ground truth):
protected void instrumentAndReplaceBody(MarkupStream markupStream,ComponentTag openTag,CharSequence bodyText){
  boolean designMode=false;
  IFormUIInternal<?> formui=findParent(IFormUIInternal.class);
  if (formui != null && formui.isDesignMode()) {
    designMode=true;
  }
  String cssId=null;
  if (WebBaseButton.getImageDisplayURL(this) != null) {
    cssId=getMarkupId() + "String_Node_Str";
  }
  int anchor=Utils.getAsBoolean(application.getRuntimeProperties().get("String_Node_Str")) ? anchors : 0;
  replaceComponentTagBody(markupStream,openTag,instrumentBodyText(bodyText,halign,valign,false,border,margin,cssId,(char)getDisplayedMnemonic(),getMarkupId(),getImageDisplayURL(this),size == null ? 0 : size.height,true,designMode ? null : cursor,false,anchor));
}