@Override
    public void listenFor(final String libraryId, final Slot<? super Library> slot) {
        // Create a shared library listener
        new AbstractLibraryListener(libraryId, ownerID, Providers.bundleContext) {
            @Override
            void update() {
                final String methodName = "update(): ";
                // the shared library has arrived! 
                Library library = Providers.getSharedLibrary(libraryId);
                if (library == null) {
                    if (tc.isDebugEnabled())
                        Tr.debug(tc, methodName + "class loader " + ownerID + "received a notification from the shared library " + libraryId
                                     + " but the library could not be retrieved.");
                    return; // do nothing, not even deregister!
                }
                slot.fill(library);
                deregister();
            }
        };
    }
@ Override public void listenFor ( final String libraryId , final Slot < ? super Library > slot ) { new AbstractLibraryListener ( libraryId , ownerID , Providers . bundleContext ) { @ Override void update ( ) { final String methodName = "update(): " ; Library library = Providers . getSharedLibrary ( libraryId ) ; if ( library == null ) { if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , methodName + "class loader " + ownerID + "received a notification from the shared library " + libraryId + " but the library could not be retrieved." ) ; return ; } slot . fill ( library ) ; deregister ( ) ; } } ; }
invoked by the blocking list when a synchronous fetch operation fails