ArrayList basicFindClassLoaders ( ) { Class [ ] stack = contextFinder . getClassContext ( ) ; ArrayList result = new ArrayList ( 1 ) ; ClassLoader previousLoader = null ; for ( int i = 1 ; i < stack . length ; i ++ ) { ClassLoader tmp = stack [ i ] . getClassLoader ( ) ; if ( checkClass ( stack [ i ] ) && tmp != null && tmp != this ) { if ( checkClassLoader ( tmp ) ) { if ( previousLoader != tmp ) { result . add ( tmp ) ; previousLoader = tmp ; } } // stop at the framework classloader or the first bundle classloader if ( Activator . getBundle ( stack [ i ] ) != null ) break ; } } return result ; }
We assume that the bootclassloader never uses the context classloader to find classes in itself .