public void handleRemoteSessionSubscribed(int sessionID, boolean subscribed) {
    IEvent event = null;
    synchronized (this) {
      InternalCDORemoteSession remoteSession =
          (InternalCDORemoteSession) remoteSessions.get(sessionID);
      if (remoteSession != null) {
        remoteSession.setSubscribed(subscribed);
        event = new SubscriptionChangedEventImpl(remoteSession, subscribed);
      }
    }

    if (event != null) {
      fireEvent(event);
    }
  }
 public InternalCDORemoteSession createRemoteSession(
     int sessionID, String userID, boolean subscribed) {
   InternalCDORemoteSession remoteSession = new CDORemoteSessionImpl(this, sessionID, userID);
   remoteSession.setSubscribed(subscribed);
   return remoteSession;
 }