diff options
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java index 7ddaadc83..55abf9ade 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/permadmin/SecurityTable.java @@ -7,7 +7,7 @@ * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * * Contributors: * IBM Corporation - initial API and implementation * Connexta, LLC - evaluation cache implementation @@ -16,6 +16,7 @@ package org.eclipse.osgi.internal.permadmin; import java.security.Permission; import java.security.PermissionCollection; +import java.util.Collections; import java.util.Enumeration; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -51,6 +52,9 @@ public class SecurityTable extends PermissionCollection { if (bundlePermissions == null) { return ABSTAIN; } + if (evaluationCache.size() > 10000) { + clearEvaluationCache(); + } EvaluationCacheKey evaluationCacheKey = new EvaluationCacheKey(bundlePermissions, permission); if (isEmpty()) { evaluationCache.put(evaluationCacheKey, ABSTAIN); @@ -170,9 +174,10 @@ public class SecurityTable extends PermissionCollection { } SecurityRow getRow(String name) { - for (int i = 0; i < rows.length; i++) { - if (name.equals(rows[i].getName())) - return rows[i]; + for (SecurityRow row : rows) { + if (name.equals(row.getName())) { + return row; + } } return null; } @@ -195,7 +200,7 @@ public class SecurityTable extends PermissionCollection { @Override public Enumeration<Permission> elements() { - return BundlePermissions.EMPTY_ENUMERATION; + return Collections.emptyEnumeration(); } @Override |