Blame SOURCES/xbean-XBEAN-255.patch

dc52fd
Index: xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java
dc52fd
===================================================================
dc52fd
--- xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java	(revision 1538849)
dc52fd
+++ xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java	(revision 1538850)
dc52fd
@@ -25,8 +25,6 @@
dc52fd
 import java.lang.reflect.Method;
dc52fd
 import java.lang.reflect.Modifier;
dc52fd
 import java.lang.reflect.Type;
dc52fd
-import java.security.AccessController;
dc52fd
-import java.security.PrivilegedAction;
dc52fd
 import java.util.ArrayList;
dc52fd
 import java.util.Arrays;
dc52fd
 import java.util.Collections;
dc52fd
@@ -1011,12 +1009,7 @@
dc52fd
     }
dc52fd
 
dc52fd
     private static void setAccessible(final AccessibleObject accessibleObject) {
dc52fd
-        AccessController.doPrivileged(new PrivilegedAction<Object>() {
dc52fd
-            public Object run() {
dc52fd
-                accessibleObject.setAccessible(true);
dc52fd
-                return null;
dc52fd
-            }
dc52fd
-        });
dc52fd
+        accessibleObject.setAccessible(true);
dc52fd
     }
dc52fd
 
dc52fd
     private static String toParameterList(Class[] parameterTypes) {
dc52fd
Index: xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java
dc52fd
===================================================================
dc52fd
--- xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java	(revision 1538849)
dc52fd
+++ xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java	(revision 1538850)
dc52fd
@@ -24,11 +24,7 @@
dc52fd
 
dc52fd
 public abstract class SunURLClassPath implements ClassPath {
dc52fd
     public static ClassLoader getContextClassLoader() {
dc52fd
-        return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                return Thread.currentThread().getContextClassLoader();
dc52fd
-            }
dc52fd
-        });
dc52fd
+        return Thread.currentThread().getContextClassLoader();
dc52fd
     }
dc52fd
 
dc52fd
     private java.lang.reflect.Field ucpField;
dc52fd
Index: xbean-classloader/src/main/java/org/apache/xbean/classloader/JarFileClassLoader.java
dc52fd
===================================================================
dc52fd
--- xbean-classloader/src/main/java/org/apache/xbean/classloader/JarFileClassLoader.java	(revision 1539052)
dc52fd
+++ xbean-classloader/src/main/java/org/apache/xbean/classloader/JarFileClassLoader.java	(revision 1539053)
dc52fd
@@ -20,12 +20,7 @@
dc52fd
 import java.io.File;
dc52fd
 import java.net.URL;
dc52fd
 import java.net.URI;
dc52fd
-import java.security.AccessControlContext;
dc52fd
-import java.security.AccessController;
dc52fd
 import java.security.CodeSource;
dc52fd
-import java.security.PrivilegedAction;
dc52fd
-import java.security.PrivilegedExceptionAction;
dc52fd
-import java.security.PrivilegedActionException;
dc52fd
 import java.security.cert.Certificate;
dc52fd
 import java.util.Collection;
dc52fd
 import java.util.Enumeration;
dc52fd
@@ -49,7 +44,6 @@
dc52fd
     private static final URL[] EMPTY_URLS = new URL[0];
dc52fd
 
dc52fd
     private final UrlResourceFinder resourceFinder = new UrlResourceFinder();
dc52fd
-    private final AccessControlContext acc;
dc52fd
 
dc52fd
     /**
dc52fd
      * Creates a JarFileClassLoader that is a child of the system class loader.
dc52fd
@@ -58,7 +52,6 @@
dc52fd
      */
dc52fd
     public JarFileClassLoader(String name, URL[] urls) {
dc52fd
         super(name, EMPTY_URLS);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
@@ -70,13 +63,11 @@
dc52fd
      */
dc52fd
     public JarFileClassLoader(String name, URL[] urls, ClassLoader parent) {
dc52fd
         super(name, EMPTY_URLS, parent);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
     public JarFileClassLoader(String name, URL[] urls, ClassLoader parent, boolean inverseClassLoading, String[] hiddenClasses, String[] nonOverridableClasses) {
dc52fd
         super(name, EMPTY_URLS, parent, inverseClassLoading, hiddenClasses, nonOverridableClasses);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
@@ -88,19 +79,16 @@
dc52fd
      */
dc52fd
     public JarFileClassLoader(String name, URL[] urls, ClassLoader[] parents) {
dc52fd
         super(name, EMPTY_URLS, parents);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
     public JarFileClassLoader(String name, URL[] urls, ClassLoader[] parents, boolean inverseClassLoading, Collection hiddenClasses, Collection nonOverridableClasses) {
dc52fd
         super(name, EMPTY_URLS, parents, inverseClassLoading, hiddenClasses, nonOverridableClasses);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
     public JarFileClassLoader(String name, URL[] urls, ClassLoader[] parents, boolean inverseClassLoading, String[] hiddenClasses, String[] nonOverridableClasses) {
dc52fd
         super(name, EMPTY_URLS, parents, inverseClassLoading, hiddenClasses, nonOverridableClasses);
dc52fd
-        this.acc = AccessController.getContext();
dc52fd
         addURLs(urls);
dc52fd
     }
dc52fd
 
dc52fd
@@ -115,12 +103,7 @@
dc52fd
      * {@inheritDoc}
dc52fd
      */
dc52fd
     public void addURL(final URL url) {
dc52fd
-        AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                resourceFinder.addUrl(url);
dc52fd
-                return null;
dc52fd
-            }
dc52fd
-        }, acc);
dc52fd
+        resourceFinder.addUrl(url);
dc52fd
     }
dc52fd
 
dc52fd
     /**
dc52fd
@@ -128,12 +111,7 @@
dc52fd
      * @param urls the URLs to add
dc52fd
      */
dc52fd
     protected void addURLs(final URL[] urls) {
dc52fd
-        AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                resourceFinder.addUrls(urls);
dc52fd
-                return null;
dc52fd
-            }
dc52fd
-        }, acc);
dc52fd
+        resourceFinder.addUrls(urls);
dc52fd
     }
dc52fd
 
dc52fd
     /**
dc52fd
@@ -148,11 +126,7 @@
dc52fd
      * {@inheritDoc}
dc52fd
      */
dc52fd
     public URL findResource(final String resourceName) {
dc52fd
-        return (URL) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                return resourceFinder.findResource(resourceName);
dc52fd
-            }
dc52fd
-        }, acc);
dc52fd
+        return resourceFinder.findResource(resourceName);
dc52fd
     }
dc52fd
 
dc52fd
     /**
dc52fd
@@ -164,11 +138,7 @@
dc52fd
         Enumeration parentResources = super.findResources(resourceName);
dc52fd
 
dc52fd
         // get the classes from my urls
dc52fd
-        Enumeration myResources = (Enumeration) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                return resourceFinder.findResources(resourceName);
dc52fd
-            }
dc52fd
-        }, acc);
dc52fd
+        Enumeration myResources = resourceFinder.findResources(resourceName);
dc52fd
 
dc52fd
         // join the two together
dc52fd
         Enumeration resources = new UnionEnumeration(parentResources, myResources);
dc52fd
@@ -196,11 +166,7 @@
dc52fd
         }
dc52fd
 
dc52fd
         // get a resource handle to the library
dc52fd
-        ResourceHandle resourceHandle = (ResourceHandle) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                return resourceFinder.getResource(resourceName);
dc52fd
-            }
dc52fd
-        }, acc);
dc52fd
+        ResourceHandle resourceHandle = resourceFinder.getResource(resourceName);
dc52fd
 
dc52fd
         if (resourceHandle == null) {
dc52fd
             return null;
dc52fd
@@ -220,62 +186,53 @@
dc52fd
      * {@inheritDoc}
dc52fd
      */
dc52fd
     protected Class findClass(final String className) throws ClassNotFoundException {
dc52fd
-        try {
dc52fd
-            return (Class) AccessController.doPrivileged(new PrivilegedExceptionAction() {
dc52fd
-                public Object run() throws ClassNotFoundException {
dc52fd
-                    // first think check if we are allowed to define the package
dc52fd
-                    SecurityManager securityManager = System.getSecurityManager();
dc52fd
-                    if (securityManager != null) {
dc52fd
-                        String packageName;
dc52fd
-                        int packageEnd = className.lastIndexOf('.');
dc52fd
-                        if (packageEnd >= 0) {
dc52fd
-                            packageName = className.substring(0, packageEnd);
dc52fd
-                            securityManager.checkPackageDefinition(packageName);
dc52fd
-                        }
dc52fd
-                    }
dc52fd
+        // first think check if we are allowed to define the package
dc52fd
+        SecurityManager securityManager = System.getSecurityManager();
dc52fd
+        if (securityManager != null) {
dc52fd
+            String packageName;
dc52fd
+            int packageEnd = className.lastIndexOf('.');
dc52fd
+            if (packageEnd >= 0) {
dc52fd
+                packageName = className.substring(0, packageEnd);
dc52fd
+                securityManager.checkPackageDefinition(packageName);
dc52fd
+            }
dc52fd
+        }
dc52fd
 
dc52fd
+        // convert the class name to a file name
dc52fd
+        String resourceName = className.replace('.', '/') + ".class";
dc52fd
 
dc52fd
-                    // convert the class name to a file name
dc52fd
-                    String resourceName = className.replace('.', '/') + ".class";
dc52fd
+        // find the class file resource
dc52fd
+        ResourceHandle resourceHandle = resourceFinder.getResource(resourceName);
dc52fd
+        if (resourceHandle == null) {
dc52fd
+            throw new ClassNotFoundException(className);
dc52fd
+        }
dc52fd
 
dc52fd
-                    // find the class file resource
dc52fd
-                    ResourceHandle resourceHandle = resourceFinder.getResource(resourceName);
dc52fd
-                    if (resourceHandle == null) {
dc52fd
-                        throw new ClassNotFoundException(className);
dc52fd
-                    }
dc52fd
+        byte[] bytes;
dc52fd
+        Manifest manifest;
dc52fd
+        try {
dc52fd
+            // get the bytes from the class file
dc52fd
+            bytes = resourceHandle.getBytes();
dc52fd
+            
dc52fd
+            // get the manifest for defining the packages
dc52fd
+            manifest = resourceHandle.getManifest();
dc52fd
+        } catch (IOException e) {
dc52fd
+            throw new ClassNotFoundException(className, e);
dc52fd
+        }
dc52fd
 
dc52fd
-                    byte[] bytes;
dc52fd
-                    Manifest manifest;
dc52fd
-                    try {
dc52fd
-                        // get the bytes from the class file
dc52fd
-                        bytes = resourceHandle.getBytes();
dc52fd
+        // get the certificates for the code source
dc52fd
+        Certificate[] certificates = resourceHandle.getCertificates();
dc52fd
+        
dc52fd
+        // the code source url is used to define the package and as the security context for the class
dc52fd
+        URL codeSourceUrl = resourceHandle.getCodeSourceUrl();
dc52fd
 
dc52fd
-                        // get the manifest for defining the packages
dc52fd
-                        manifest = resourceHandle.getManifest();
dc52fd
-                    } catch (IOException e) {
dc52fd
-                        throw new ClassNotFoundException(className, e);
dc52fd
-                    }
dc52fd
+        // define the package (required for security)
dc52fd
+        definePackage(className, codeSourceUrl, manifest);
dc52fd
 
dc52fd
-                    // get the certificates for the code source
dc52fd
-                    Certificate[] certificates = resourceHandle.getCertificates();
dc52fd
-
dc52fd
-                    // the code source url is used to define the package and as the security context for the class
dc52fd
-                    URL codeSourceUrl = resourceHandle.getCodeSourceUrl();
dc52fd
-
dc52fd
-                    // define the package (required for security)
dc52fd
-                    definePackage(className, codeSourceUrl, manifest);
dc52fd
-
dc52fd
-                    // this is the security context of the class
dc52fd
-                    CodeSource codeSource = new CodeSource(codeSourceUrl, certificates);
dc52fd
-
dc52fd
-                    // load the class into the vm
dc52fd
-                    Class clazz = defineClass(className, bytes, 0, bytes.length, codeSource);
dc52fd
-                    return clazz;
dc52fd
-                }
dc52fd
-            }, acc);
dc52fd
-        } catch (PrivilegedActionException e) {
dc52fd
-            throw (ClassNotFoundException) e.getException();
dc52fd
-        }
dc52fd
+        // this is the security context of the class
dc52fd
+        CodeSource codeSource = new CodeSource(codeSourceUrl, certificates);
dc52fd
+        
dc52fd
+        // load the class into the vm
dc52fd
+        Class clazz = defineClass(className, bytes, 0, bytes.length, codeSource);
dc52fd
+        return clazz;
dc52fd
     }
dc52fd
 
dc52fd
     private void definePackage(String className, URL jarUrl, Manifest manifest) {
dc52fd
Index: xbean-classpath/src/main/java/org/apache/xbean/classpath/TomcatClassPath.java
dc52fd
===================================================================
dc52fd
--- xbean-classpath/src/main/java/org/apache/xbean/classpath/TomcatClassPath.java	(revision 1539055)
dc52fd
+++ xbean-classpath/src/main/java/org/apache/xbean/classpath/TomcatClassPath.java	(revision 1539056)
dc52fd
@@ -20,8 +20,6 @@
dc52fd
 import java.lang.reflect.Method;
dc52fd
 import java.net.URL;
dc52fd
 import java.net.URLClassLoader;
dc52fd
-import java.security.AccessController;
dc52fd
-import java.security.PrivilegedAction;
dc52fd
 
dc52fd
 public class TomcatClassPath extends SunURLClassPath {
dc52fd
 
dc52fd
@@ -140,36 +138,19 @@
dc52fd
      * @return URLClassLoader.addURL method instance
dc52fd
      */
dc52fd
     private Method getAddURLMethod() throws Exception {
dc52fd
-        return (Method) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                Method method = null;
dc52fd
-                try {
dc52fd
-                    Class clazz = URLClassLoader.class;
dc52fd
-                    method = clazz.getDeclaredMethod("addURL", new Class[]{URL.class});
dc52fd
-                    method.setAccessible(true);
dc52fd
-                    return method;
dc52fd
-                } catch (Exception e2) {
dc52fd
-                    e2.printStackTrace();
dc52fd
-                }
dc52fd
-                return method;
dc52fd
-            }
dc52fd
-        });
dc52fd
+        Method method = null;
dc52fd
+        Class clazz = URLClassLoader.class;
dc52fd
+        method = clazz.getDeclaredMethod("addURL", new Class[]{URL.class});
dc52fd
+        method.setAccessible(true);
dc52fd
+        return method;
dc52fd
     }
dc52fd
 
dc52fd
     private Method getAddRepositoryMethod() throws Exception {
dc52fd
-        return (Method) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-            public Object run() {
dc52fd
-                Method method = null;
dc52fd
-                try {
dc52fd
-                    Class clazz = getClassLoader().getClass();
dc52fd
-                    method = clazz.getDeclaredMethod("addRepository", new Class[]{String.class});
dc52fd
-                    method.setAccessible(true);
dc52fd
-                    return method;
dc52fd
-                } catch (Exception e2) {
dc52fd
-                    throw (IllegalStateException) new IllegalStateException("Unable to find or access the addRepository method in StandardClassLoader").initCause(e2);
dc52fd
-                }
dc52fd
-            }
dc52fd
-        });
dc52fd
+        Method method = null;
dc52fd
+        Class clazz = getClassLoader().getClass();
dc52fd
+        method = clazz.getDeclaredMethod("addRepository", new Class[]{String.class});
dc52fd
+        method.setAccessible(true);
dc52fd
+        return method;
dc52fd
     }
dc52fd
 
dc52fd
 }
dc52fd
Index: xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java
dc52fd
===================================================================
dc52fd
--- xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java	(revision 1539055)
dc52fd
+++ xbean-classpath/src/main/java/org/apache/xbean/classpath/SunURLClassPath.java	(revision 1539056)
dc52fd
@@ -19,10 +19,9 @@
dc52fd
 import java.io.File;
dc52fd
 import java.net.URL;
dc52fd
 import java.net.URLClassLoader;
dc52fd
-import java.security.AccessController;
dc52fd
-import java.security.PrivilegedAction;
dc52fd
 
dc52fd
 public abstract class SunURLClassPath implements ClassPath {
dc52fd
+
dc52fd
     public static ClassLoader getContextClassLoader() {
dc52fd
         return Thread.currentThread().getContextClassLoader();
dc52fd
     }
dc52fd
@@ -64,20 +63,9 @@
dc52fd
     private java.lang.reflect.Field getUcpField() throws Exception {
dc52fd
         if (ucpField == null) {
dc52fd
             // Add them to the URLClassLoader's classpath
dc52fd
-            ucpField = (java.lang.reflect.Field) AccessController.doPrivileged(new PrivilegedAction() {
dc52fd
-                public Object run() {
dc52fd
-                    java.lang.reflect.Field ucp = null;
dc52fd
-                    try {
dc52fd
-                        ucp = URLClassLoader.class.getDeclaredField("ucp");
dc52fd
-                        ucp.setAccessible(true);
dc52fd
-                    } catch (Exception e2) {
dc52fd
-                        e2.printStackTrace();
dc52fd
-                    }
dc52fd
-                    return ucp;
dc52fd
-                }
dc52fd
-            });
dc52fd
+            ucpField = URLClassLoader.class.getDeclaredField("ucp");
dc52fd
+            ucpField.setAccessible(true);
dc52fd
         }
dc52fd
-
dc52fd
         return ucpField;
dc52fd
     }
dc52fd