/** * Get an annotation. This is wrappered to avoid a Java2Security violation. * * @param cls Class that contains annotation * @param annotation Class of requrested Annotation * @return annotation or null */ private static Annotation getAnnotation(final AnnotatedElement element, final Class annotation) { return (Annotation) AccessController.doPrivileged( new PrivilegedAction() { public Object run() { return element.getAnnotation(annotation); } }); }
public Thread newThread(final Runnable r) { if (threadGroup == null) { try { threadGroup = (ThreadGroup) AccessController.doPrivileged( new PrivilegedExceptionAction() { public Object run() { return new ThreadGroup("JAX-WS Default Executor Group " + groupNumber++); } }); } catch (PrivilegedActionException e) { if (log.isDebugEnabled()) { log.debug("Exception thrown from AccessController: " + e); } throw ExceptionFactory.makeWebServiceException(e.getException()); } } threadNumber++; Thread returnThread = null; try { returnThread = (Thread) AccessController.doPrivileged( new PrivilegedExceptionAction() { public Object run() { Thread newThread = new Thread(threadGroup, r); newThread.setDaemon(true); return newThread; } }); } catch (PrivilegedActionException e) { if (log.isDebugEnabled()) { log.debug("Exception thrown from AccessController: " + e); } throw ExceptionFactory.makeWebServiceException(e.getException()); } return returnThread; }
// Implement Actor's takeAction method public void takeAction() { try { if (_usingDoPrivilege) { final AccessControlContext acc = AccessController.getContext(); // Demostrate the usage of AccessController.doPrivileged(PrivilegeAction action, // AccessContext ctx) AccessController.doPrivileged( new PrivilegedAction() { public Object run() { _actor.takeAction(); return null; } }, acc); } else { // Use no doPrivileged _actor.takeAction(); } } catch (Exception e) { e.printStackTrace(System.out); } }
private static ClassLoader getContextClassLoader(final ClassLoader classLoader) { ClassLoader cl; try { cl = (ClassLoader) AccessController.doPrivileged( new PrivilegedExceptionAction() { public Object run() throws ClassNotFoundException { return classLoader != null ? classLoader : Thread.currentThread().getContextClassLoader(); } }); } catch (PrivilegedActionException e) { if (log.isDebugEnabled()) { log.debug("Exception thrown from AccessController: " + e.getMessage(), e); } throw ExceptionFactory.makeWebServiceException(e.getException()); } return cl; }