public mxICellOverlay removeCellOverlay(Object cell,mxICellOverlay overlay){
  if (overlay == null) {
    removeCellOverlays(cell);
  }
 else {
    mxICellOverlay[] arr=getCellOverlays(cell);
    if (arr != null) {
      List<mxICellOverlay> list=Arrays.asList(arr);
      if (list.remove(overlay)) {
        removeCellOverlayComponent(overlay,cell);
      }
      arr=(mxICellOverlay[])list.toArray();
      overlays.put(cell,arr);
    }
  }
  return overlay;
}

public mxICellOverlay removeCellOverlay ( Object cell , mxICellOverlay overlay ) { if ( overlay == null ) { removeCellOverlays ( cell ) ; } else { mxICellOverlay [ ] arr = getCellOverlays ( cell ) ; if ( arr != null ) { List < mxICellOverlay > list = Arrays . asList ( arr ) ; if ( list . remove ( overlay ) ) { removeCellOverlayComponent ( overlay , cell ) ; } arr = ( mxICellOverlay [ ] ) list . toArray ( ) ; overlays . put ( cell , arr ) ; } } return overlay ; }
removes and returns the given overlay from the given cell . this method fires a removeoverlay event . if no overlay is given , then all overlays are removed using removeoverlays .
