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)