You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2012/07/11 14:56:54 UTC
svn commit: r1360162 -
/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java
Author: struberg
Date: Wed Jul 11 12:56:53 2012
New Revision: 1360162
URL: http://svn.apache.org/viewvc?rev=1360162&view=rev
Log:
EXTCDI-298 only doPrivileged if SecurityManager is available
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java?rev=1360162&r1=1360161&r2=1360162&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/util/ClassUtils.java Wed Jul 11 12:56:53 2012
@@ -45,7 +45,7 @@ public abstract class ClassUtils
* <ol>
* <li>ContextClassLoader of the current Thread</li>
* <li>ClassLoader of the given Object 'o'</li>
- * <li>ClassLoader of this very CodiUtils class</li>
+ * <li>ClassLoader of this very ClassUtils class</li>
* </ol>
*
* @param o if not <code>null</code> it may get used to detect the classloader.
@@ -53,24 +53,41 @@ public abstract class ClassUtils
*/
public static ClassLoader getClassLoader(Object o)
{
- ClassLoader loader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+ if (System.getSecurityManager() != null)
{
- /**
- * {@inheritDoc}
- */
- public ClassLoader run()
+ return AccessController.doPrivileged(new GetClassLoaderAction(o));
+ }
+ else
+ {
+ return getClassLoaderInternal(o);
+ }
+ }
+
+ static class GetClassLoaderAction implements PrivilegedAction<ClassLoader>
+ {
+ private Object object;
+ GetClassLoaderAction(Object object)
+ {
+ this.object = object;
+ }
+
+ @Override
+ public ClassLoader run()
+ {
+ try
+ {
+ return getClassLoaderInternal(object);
+ }
+ catch (Exception e)
{
- try
- {
- return Thread.currentThread().getContextClassLoader();
- }
- catch (Exception e)
- {
- return null;
- }
+ return null;
}
}
- );
+ }
+
+ private static ClassLoader getClassLoaderInternal(Object o)
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
if (loader == null && o != null)
{