code: public void entryRemoved (EntryRemovedEvent<OccupantInfo> event)
      {
          // bail if this isn't for the OCCUPANT_INFO field
          if (!event.getName().equals(PlaceObject.OCCUPANT_INFO)) {
              return;
          }
  
          // let the occupant observers know what's up
          final OccupantInfo oinfo = event.getOldEntry();
          _observers.apply(new ObserverList.ObserverOp<OccupantObserver>() {
              public boolean apply (OccupantObserver observer) {
                  observer.occupantLeft(oinfo);
                  return true;
              }
          });
      }
docs: Deals with all of the processing when an occupant leaves.