Author: pauls
Date: Wed Mar  5 04:50:05 2008
New Revision: 633836

URL: http://svn.apache.org/viewvc?rev=633836&view=rev
Log:
The extensionmanager creates a classcastexception if more then framework is 
around and both have extensions installed. This fixes the issue.

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

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java?rev=633836&r1=633835&r2=633836&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
 Wed Mar  5 04:50:05 2008
@@ -227,7 +227,7 @@
                 new AdminPermission(bundle, 
AdminPermission.EXTENSIONLIFECYCLE));
         }
 
-        if (!bundle.getInfo().getProtectionDomain().implies(new 
AllPermission()))
+        if (!((BundleProtectionDomain) 
bundle.getInfo().getProtectionDomain()).impliesDirect(new AllPermission()))
         {
             throw new SecurityException("Extension Bundles must have 
AllPermission");
         }
@@ -577,8 +577,12 @@
 
         for (Iterator iter = m_sourceToExtensions.values().iterator(); 
iter.hasNext();)
         {
-            Bundle bundle = (Bundle) iter.next();
-            _add(bundle.getSymbolicName(), bundle);
+            List extensions = (List) iter.next();
+            for (Iterator extIter = extensions.iterator(); extIter.hasNext();)
+            {
+                Bundle bundle = (Bundle) extIter.next();
+                _add(bundle.getSymbolicName(), bundle);
+            }
         }
     }
 


Reply via email to