incubator-aries-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From timothyjw...@apache.org
Subject svn commit: r996882 - /incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
Date Tue, 14 Sep 2010 13:11:09 GMT
Author: timothyjward
Date: Tue Sep 14 13:11:09 2010
New Revision: 996882

URL: http://svn.apache.org/viewvc?rev=996882&view=rev
Log:
ARIES-407 - Java 2 security fix

Modified:
    incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java

Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java?rev=996882&r1=996881&r2=996882&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
(original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
Tue Sep 14 13:11:09 2010
@@ -21,7 +21,12 @@ package org.apache.aries.jpa.container.u
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.UndeclaredThrowableException;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.Enumeration;
 
 import org.osgi.framework.Bundle;
@@ -68,13 +73,41 @@ public class TempBundleDelegatingClassLo
   }
 
   @Override
-  protected URL findResource(String resName) {
-    return bundle.getResource(resName);
+  protected URL findResource(final String resName)
+  {
+    return AccessController.doPrivileged(new PrivilegedAction<URL>() {
+
+      public URL run()
+      {
+        return bundle.getResource(resName);
+      }
+    });
   }
 
   @SuppressWarnings("unchecked")
   @Override
-  protected Enumeration<URL> findResources(String resName) throws IOException {
-    return bundle.getResources(resName);
+  protected Enumeration<URL> findResources(final String resName) throws IOException
+  {
+    Enumeration<URL> resources = null;
+    try {
+      resources = AccessController.doPrivileged(new PrivilegedExceptionAction<Enumeration<URL>>()
{
+
+        public Enumeration<URL> run() throws IOException
+        {
+          return bundle.getResources(resName);
+        }
+      });
+    } catch(PrivilegedActionException pae) {
+      Exception thrownException = pae.getException();
+      if (thrownException instanceof RuntimeException) {
+        throw (RuntimeException)thrownException;
+      } else if (thrownException instanceof IOException) {
+        throw (IOException)thrownException;
+      } else {
+        // This code should never get called.
+        throw new UndeclaredThrowableException(thrownException);
+      }
+    }
+    return resources;
   }
 }



Mime
View raw message