code: protected void close() {
          log.debug("close");
          closed.compareAndSet(false, true);
          // clear collections
          super.removeAttributes();
          listeners.clear();
          syncEvents.clear();
          ownerMessage.getEvents().clear();
      }
docs: Detaches a reference from this shared object, reset it's state, this will destroy the reference immediately. This is useful when you
  don't want to proxy a shared object any longer.