boolean isOffendingClass ( Class < ? > [ ] classes , int j , ProtectionDomain pd2 , Permission inPerm ) { // Return true if ... return ( ! classes [ j ] . getName ( ) . startsWith ( "java" ) ) && // as long as not // starting with // java ( classes [ j ] . getName ( ) . indexOf ( "com.ibm.ws.kernel.launch.internal.NoRethrowSecurityManager" ) == - 1 ) && // not // our // SecurityManager ( classes [ j ] . getName ( ) . indexOf ( "ClassLoader" ) == - 1 ) && // not a // class // loader // not the end of stack and next is not a class loader ( ( j == classes . length - 1 ) ? true : ( classes [ j + 1 ] . getName ( ) . indexOf ( "ClassLoader" ) == - 1 ) ) && // lacks the required permissions ! pd2 . implies ( inPerm ) ; }
isOffendingClass determines the offending class from the classes defined in the stack .