code: public boolean objectRemoved (DEvent event, DObject target)
      {
          ObjectRemovedEvent ore = (ObjectRemovedEvent)event;
          String field = ore.getName();
          int toid = target.getOid();
          int oid = ore.getOid();
  
  //        log.info("Processing object removed", "from", toid, "roid", toid);
  
          // get the reference vector for the referenced object
          Reference[] refs = _refs.get(oid);
          if (refs == null) {
              // this can happen normally when an object is destroyed. it will remove itself from the
              // reference system and then generate object removed events for all of its referencees.
              // so we opt not to log anything in this case
  
  //             log.info("Object removed without reference to track it", "toid", toid,
  //                      "field", field, "oid", oid);
              return true;
          }
  
          // look for the matching reference
          for (int ii = 0; ii < refs.length; ii++) {
              Reference ref = refs[ii];
              if (ref != null && ref.equals(toid, field)) {
  //                log.info("Removed reference " + refs[i] + ".");
                  refs[ii] = null;
                  return true;
              }
          }
  
          log.warning("Unable to locate reference for removal", "reffingOid", toid, "field", field,
                      "reffedOid", oid);
          return true;
      }
docs: Called as a helper for <code>ObjectRemovedEvent</code> events. It updates the object/oid
  list tracking structures.
  
  @return true if the event should be dispatched, false if it should be aborted.