private void stopResourceAdapter ( ) { if ( resourceAdapter != null ) try { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( this , tc , "stop" , resourceAdapter ) ; ArrayList < ThreadContext > threadContext = startTask ( raThreadContextDescriptor ) ; try { beginContext ( raMetaData ) ; try { ClassLoader previousClassLoader = jcasu . beginContextClassLoader ( raClassLoader ) ; try { resourceAdapter . stop ( ) ; } finally { if ( raClassLoader != null ) { jcasu . endContextClassLoader ( raClassLoader , previousClassLoader ) ; classLoadingSvc . destroyThreadContextClassLoader ( raClassLoader ) ; } } } finally { endContext ( raMetaData ) ; } } finally { stopTask ( raThreadContextDescriptor , threadContext ) ; } // Cancel timers for ( Timer timer = timers . poll ( ) ; timer != null ; timer = timers . poll ( ) ) { timer . cancel ( ) ; timer . purge ( ) ; } // Cancel/release work workManager . stop ( ) ; } catch ( Throwable x ) { // auto FFDC } finally { // decrement the reference count BundleContext bundleContext = FrameworkUtil . getBundle ( getClass ( ) ) . getBundleContext ( ) ; if ( bundleContext != null ) { bundleContext . ungetService ( contextSvcRef ) ; } } }
Stop the resource adapter if it has started .