code: Entry forceRemove()
    {
      Entry removedEntry = null;
  
      checkEntryParent();
          
      if(atTop)
      {
        //if we are at the top of the list and we are the first top cursor
        if(parentList.firstTopCursor == this)
        {
          //set the first top cursor to be the next one in the list
          parentList.firstTopCursor = (Cursor) next;                
        }
        //mark us as not at the top
        atTop = false;
      }
      else if(atBottom)
      {
        //if we are at the bottom of the list and we are the first bottom cursor
        if(parentList.firstBottomCursor == this)
        {
          //set the first bottom cursor to be the next one in the list
          parentList.firstBottomCursor = (Cursor) next;                
        }
        //mark us as not at the bottom
        atBottom = false;
      }
      else
      {
        //if we are pointing to an actual entry in the list
        if(current.firstCursor == this)
        {
          //and we are the first cursor on that entry
          //set the first cursor to be the next one in the list
          current.firstCursor = (Cursor) next;
        }
        //set the current entry to null
        current = null;
      }
      //actually remove this cursor from the list
      removedEntry = super.forceRemove();
      
      return removedEntry;
    }
docs: Not Synchronized.
  
  Removes a cursor from the list. It is the responsibility of the caller
  to ensure that the list AND the cursor are properly synchronized before this method
  is called.