You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ti...@apache.org on 2010/09/14 15:16:45 UTC
svn commit: r996886 -
/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
Author: timothyjward
Date: Tue Sep 14 13:16:44 2010
New Revision: 996886
URL: http://svn.apache.org/viewvc?rev=996886&view=rev
Log:
ARIES-407 - Java 2 security fix, tidy up patch and add some comments
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=996886&r1=996885&r2=996886&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:16:44 2010
@@ -75,6 +75,8 @@ public class TempBundleDelegatingClassLo
@Override
protected URL findResource(final String resName)
{
+ //Bundle.getResource requires privileges that the client may not have but we need
+ //use a doPriv so that only this bundle needs the privileges
return AccessController.doPrivileged(new PrivilegedAction<URL>() {
public URL run()
@@ -90,6 +92,8 @@ public class TempBundleDelegatingClassLo
{
Enumeration<URL> resources = null;
try {
+ //Bundle.getResources requires privileges that the client may not have but we need
+ //use a doPriv so that only this bundle needs the privileges
resources = AccessController.doPrivileged(new PrivilegedExceptionAction<Enumeration<URL>>() {
public Enumeration<URL> run() throws IOException
@@ -98,13 +102,14 @@ public class TempBundleDelegatingClassLo
}
});
} catch(PrivilegedActionException pae) {
+ //thrownException can never be a RuntimeException, as that would escape
+ //the doPriv normally
Exception thrownException = pae.getException();
- if (thrownException instanceof RuntimeException) {
- throw (RuntimeException)thrownException;
- } else if (thrownException instanceof IOException) {
+ if (thrownException instanceof IOException) {
throw (IOException)thrownException;
} else {
- // This code should never get called.
+ // This code should never get called, but we don't
+ // want to gobble the exception if we see it.
throw new UndeclaredThrowableException(thrownException);
}
}