You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/05/14 22:36:22 UTC

svn commit: r774918 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java

Author: rickhall
Date: Thu May 14 20:36:22 2009
New Revision: 774918

URL: http://svn.apache.org/viewvc?rev=774918&view=rev
Log:
Create module class loaded in privileged block. (FELIX-1154)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java?rev=774918&r1=774917&r2=774918&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/searchpolicy/ModuleImpl.java Thu May 14 20:36:22 2009
@@ -27,6 +27,8 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLStreamHandler;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
 import java.security.SecureClassLoader;
 import java.util.ArrayList;
@@ -1173,8 +1175,21 @@
     {
         if (m_classLoader == null)
         {
-// TODO: REFACTOR - SecureAction fix needed.
-              m_classLoader = new ModuleClassLoader();
+            if (System.getSecurityManager() != null)
+            {
+                m_classLoader = (ModuleClassLoader)
+                    AccessController.doPrivileged(new PrivilegedAction() {
+                        public Object run()
+                        {
+                            return new ModuleClassLoader();
+                        }
+                    });
+            }
+            else
+            {
+                m_classLoader = new ModuleClassLoader();
+            }
+// TODO: SECURITY - Would be nice if this could use SecureAction again.
 //            m_classLoader = m_secureAction.createModuleClassLoader(
 //                this, m_protectionDomain);
         }