protected void removeAdminObjectService ( ServiceReference < AdminObjectService > reference , String id , boolean jndiName ) { NamedAdminObjectServiceInfo aosInfo = adminObjectServices . get ( id ) ; if ( aosInfo != null ) { aosInfo . getServices ( jndiName ) . removeReference ( reference ) ; // If the highest reference before updating is the one we just // removed, then we need to deactivate any endpoints using it. if ( reference . equals ( aosInfo . serviceRef ) ) { deactivateEndpoints ( aosInfo . endpointFactories ) ; // If there are no more references with this name, then clean // up the info object. Otherwise, reactivate the endpoints // using the new admin object. if ( aosInfo . updateServiceRef ( ) == null ) { cleanupAdminObjectServiceInfo ( aosInfo ) ; } else { activateDeferredEndpoints ( aosInfo . endpointFactories ) ; } } else { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "unset reference not the primary reference" ) ; } } } // With the removal of an adminObjectService, there is a possibility // that some lookups could now fail, and endpoints which rely on them // need to deactivate until it becomes available again. updateSchemeJndiNames ( false ) ; }
Should be private but findbugs complains about remove method with SR .