private SubscriptionMessageHandler removeSubscription ( SIBUuid12 topicSpace , String topic , SubscriptionMessageHandler messageHandler , Hashtable subscriptionsTable , boolean sendProxy ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "removeSubscription" , new Object [ ] { topicSpace , topic , messageHandler , subscriptionsTable , new Boolean ( sendProxy ) } ) ; // Get a key to find the Subscription with final String key = subscriptionKey ( topicSpace , topic ) ; synchronized ( subscriptionLock ) { // Find the subscription from this Buss list of subscriptions. final MESubscription subscription = ( MESubscription ) subscriptionsTable . get ( key ) ; // If the subscription doesn't exist then simply return // as this is a Foreign Bus subscription. if ( subscription == null ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "removeSubscription" , "Non Existent Subscription " + topicSpace + ":" + topic ) ; return messageHandler ; } // Perform the proxy subscription operation. messageHandler = doProxySubscribeOp ( subscription . removeRef ( ) , subscription , messageHandler , subscriptionsTable , sendProxy ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "removeSubscription" , messageHandler ) ; return messageHandler ; }
Called when an unsubscribe needs to be propagated to the group . Decrements the reference count on the subscription .