Mercurial > hg > openjdk > jdk6 > jdk
changeset 1808:e32be26dcc8c
8192789: Avoid using AtomicReference in sun.security.provider.PolicyFile
Reviewed-by: mullan, ahgross
author | igerasim |
---|---|
date | Tue, 12 Dec 2017 23:34:13 -0800 |
parents | 96a0ed531b5e |
children | 4bf938177d47 |
files | src/share/classes/sun/security/provider/PolicyFile.java |
diffstat | 1 files changed, 6 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/security/provider/PolicyFile.java Tue Feb 06 09:04:46 2018 -0800 +++ b/src/share/classes/sun/security/provider/PolicyFile.java Tue Dec 12 23:34:13 2017 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,6 @@ import java.net.SocketPermission; import java.net.NetPermission; import java.util.PropertyPermission; -import java.util.concurrent.atomic.AtomicReference; import java.awt.AWTPermission; /* import javax.security.auth.AuthPermission; @@ -296,8 +295,8 @@ private static IdentityScope scope = null; // contains the policy grant entries, PD cache, and alias mapping - private AtomicReference<PolicyInfo> policyInfo = - new AtomicReference<PolicyInfo>(); + // can be updated if refresh() is called + private volatile PolicyInfo policyInfo; private boolean constructed = false; private boolean expandProperties = true; @@ -460,7 +459,7 @@ // System.out.println("number caches=" + numCaches); PolicyInfo newInfo = new PolicyInfo(numCaches); initPolicyFile(newInfo, url); - policyInfo.set(newInfo); + policyInfo = newInfo; } private void initPolicyFile(final PolicyInfo newInfo, final URL url) { @@ -1123,9 +1122,7 @@ */ @Override public boolean implies(ProtectionDomain pd, Permission p) { - PolicyInfo pi = policyInfo.get(); - ProtectionDomainCache pdMap = pi.getPdMapping(); - + ProtectionDomainCache pdMap = policyInfo.getPdMapping(); PermissionCollection pc = pdMap.get(pd); if (pc != null) { @@ -1268,7 +1265,7 @@ private Permissions getPermissions(Permissions perms, final CodeSource cs, Principal[] principals) { - PolicyInfo pi = policyInfo.get(); + PolicyInfo pi = policyInfo; for (PolicyEntry entry : pi.policyEntries) { addPermissions(perms, cs, principals, entry);