You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2010/12/22 19:36:01 UTC

svn commit: r1052022 - /felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java

Author: pauls
Date: Wed Dec 22 18:36:01 2010
New Revision: 1052022

URL: http://svn.apache.org/viewvc?rev=1052022&view=rev
Log:
Rollback an experimental patch

Modified:
    felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java

Modified: felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java?rev=1052022&r1=1052021&r2=1052022&view=diff
==============================================================================
--- felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java (original)
+++ felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java Wed Dec 22 18:36:01 2010
@@ -34,8 +34,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Collections;
-import java.util.WeakHashMap;
 
 import org.apache.felix.framework.util.SecureAction;
 import org.osgi.framework.AdminPermission;
@@ -74,8 +72,6 @@ public final class Permissions
 
     private static final PermissionInfo[] IMPLICIT = new PermissionInfo[] { new PermissionInfo(
         FilePermission.class.getName(), "-", "read,write,delete") };
-		
-	private static volatile Map m_implicit = new WeakHashMap();
 
     Permissions(PermissionInfo[] permissionInfos, BundleContext context,
         SecureAction action)
@@ -109,22 +105,14 @@ public final class Permissions
 
     public PermissionInfo[] getImplicit(Bundle bundle)
     {
-	    PermissionInfo[] result = (PermissionInfo[]) m_implicit.get(bundle);
-		if (result == null)
-		{
-		    result = new PermissionInfo[] {
-                IMPLICIT[0],
-                new PermissionInfo(AdminPermission.class.getName(), "(id="
-                    + bundle.getBundleId() + ")", AdminPermission.METADATA),
-                new PermissionInfo(AdminPermission.class.getName(), "(id="
-                    + bundle.getBundleId() + ")", AdminPermission.RESOURCE),
-                new PermissionInfo(AdminPermission.class.getName(), "(id="
-                    + bundle.getBundleId() + ")", AdminPermission.CONTEXT) };
-			Map implicit = new WeakHashMap(m_implicit);
-		    implicit.put(bundle, result);
-			m_implicit = implicit;
-		}
-        return result;
+        return new PermissionInfo[] {
+            IMPLICIT[0],
+            new PermissionInfo(AdminPermission.class.getName(), "(id="
+                + bundle.getBundleId() + ")", AdminPermission.METADATA),
+            new PermissionInfo(AdminPermission.class.getName(), "(id="
+                + bundle.getBundleId() + ")", AdminPermission.RESOURCE),
+            new PermissionInfo(AdminPermission.class.getName(), "(id="
+                + bundle.getBundleId() + ")", AdminPermission.CONTEXT) };
     }
 
     public Permissions getPermissions(PermissionInfo[] permissionInfos)
@@ -242,32 +230,31 @@ public final class Permissions
 
         public boolean implies(Permission perm)
         {
-            Permission permission = null;
+            Map perms = null;
 
             synchronized (m_perms)
             {
-                permission = (Permission) m_perms.get(perm);
+                perms = m_perms;
             }
 
+            Permission permission = (Permission) perms.get(perm);
+
             if ((permission != null) && permission.implies(perm))
             {
                 return true;
             }
-			
-			synchronized (m_perms) 
-			{
-                for (Iterator iter = m_perms.values().iterator(); iter.hasNext();)
-                {
-                    Permission current = (Permission) iter.next();
-                    if ((current != null) && (current != permission)
-                        && current.implies(perm))
-                    {
-                        return true;
-                    }
+
+            for (Iterator iter = perms.values().iterator(); iter.hasNext();)
+            {
+                Permission current = (Permission) iter.next();
+                if ((current != null) && (current != permission)
+                    && current.implies(perm))
+                {
+                    return true;
                 }
-                return false;
             }
-		}
+            return false;
+        }
     }
 
     private void cleanUp(ReferenceQueue queue, Map cache)