private void resolveDependencies ( ) throws RuntimeWarning { // d684950 if ( EJSPlatformHelper . isZOSCRA ( ) ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( tc , "resolveDependencies: skipped in adjunct process" ) ; return ; } // F743-20281 - If an exception happened during early dependency // resolution, then fail the application. if ( ivSingletonDependencyResolutionException != null ) { throw ivSingletonDependencyResolutionException ; } // Beans currently on a dependency list. If A->B->C->A, then used={A} // then used={A,B} then used={A,B,C} then C->A is an error because A // is already in the set. Set < BeanMetaData > used = new HashSet < BeanMetaData > ( ) ; // F7434950.CodRev - Create a copy of the key list since // resolveBeanDependencies will modify ivSingletonDependencies. for ( BeanMetaData bmd : new ArrayList < BeanMetaData > ( ivSingletonDependencies . keySet ( ) ) ) { used . add ( bmd ) ; resolveBeanDependencies ( bmd , used ) ; used . remove ( bmd ) ; } }
Resolves and verifies the singleton dependency links .