public void postProcessMatches ( DestinationHandler topicSpace , String topic , Object [ ] results , int index ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "postProcessMatches" , "results: " + Arrays . toString ( results ) + ";index: " + index + ";topic" + topic ) ; Set subRes = ( Set ) results [ index ] ; Iterator itr = subRes . iterator ( ) ; if ( authorization != null ) { // If security is enabled then we'll do the permissions check if ( authorization . isBusSecure ( ) ) { if ( topicSpace != null && topicSpace . isTopicAccessCheckRequired ( ) ) // Bypass security checks { while ( itr . hasNext ( ) ) { ControllableProxySubscription cps = ( ControllableProxySubscription ) itr . next ( ) ; if ( cps . isForeignSecuredProxy ( ) ) { // The proxy sub originated in a foreign bus String userid = cps . getMESubUserId ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Foreign bus proxy in a secured env for user, " + userid + ", on topic, " + topic ) ; try { if ( ! authorization . checkPermissionToSubscribe ( topicSpace , topic , userid , ( TopicAclTraversalResults ) results [ MessageProcessorMatchTarget . ACL_TYPE ] ) ) { // Not authorized to subscribe to topic, need to remove from results if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Not authorized, remove from PSOH results" ) ; itr . remove ( ) ; } } catch ( Exception e ) { // No FFDC code needed } } } } } } else { // Its a glitch and I need to feed this back. } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "postProcessMatches" ) ; }
Complete processing of results for this handler after completely traversing MatchSpace .