code: public void addSubscriber (Subscriber<?> sub)
      {
          // only add the subscriber if they're not already there
          Object[] subs = ListUtil.testAndAddRef(_subs, sub);
          if (subs != null) {
  //             Log.info("Adding subscriber " + which() + ": " + sub + ".");
              _subs = subs;
              _scount++;
  
          } else {
              log.warning("Refusing subscriber that's already in the list", "dobj", which(),
                          "subscriber", sub, new Exception());
          }
      }
docs: Don't call this function! Go through the distributed object manager instead to ensure that
  everything is done on the proper thread.  This function can only safely be called directly
  when you know you are operating on the omgr thread (you are in the middle of a call to
  <code>objectAvailable</code> or to a listener callback).
  
  @see DObjectManager#subscribeToObject