> CreateSecurityManager? That looks wrong.
Yes, it's a bit unfortunate, but it is required for instantiating the SM sub-class provider the immediate caller:
private static class CallerClassProvider extends SecurityManager {
private static final CallerClassProvider INSTANCE = System.getSecurityManager() != null ?
AccessController.doPrivileged( new InstantiateCallerClassProvider() ) :
new CallerClassProvider();
public Class<?> getCallerClass() {
return getClassContext()[2];
}
}
|