Index: luni/src/main/java/java/lang/String.java =================================================================== --- luni/src/main/java/java/lang/String.java (revision 480885) +++ luni/src/main/java/java/lang/String.java (working copy) @@ -31,7 +31,6 @@ import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; import java.security.AccessController; -import java.util.regex.PatternSyntaxException; import org.apache.harmony.kernel.vm.VM; import org.apache.harmony.luni.util.PriviAction; Index: luni/src/main/java/java/lang/SecurityManager.java =================================================================== --- luni/src/main/java/java/lang/SecurityManager.java (revision 480885) +++ luni/src/main/java/java/lang/SecurityManager.java (working copy) @@ -303,18 +303,20 @@ throw new NullPointerException(); } if (securePackageList == null) { - String securePackages = getSecurityProperty("package.access"); - if (securePackages != null) { - StringTokenizer tokenizer = new StringTokenizer(securePackages, - ", "); - int i = 0; - securePackageList = new String[tokenizer.countTokens()]; - while (tokenizer.hasMoreTokens()) { - securePackageList[i++] = tokenizer.nextToken(); - } - } else { - securePackageList = new String[0]; - } + synchronized(this) { + String securePackages = getSecurityProperty("package.access"); + if (securePackages != null) { + StringTokenizer tokenizer = new StringTokenizer(securePackages, + ", "); + int i = 0; + securePackageList = new String[tokenizer.countTokens()]; + while (tokenizer.hasMoreTokens()) { + securePackageList[i++] = tokenizer.nextToken(); + } + } else { + securePackageList = new String[0]; + } + } } for (int i = 0; i < securePackageList.length; i++) { if (packageName.startsWith(securePackageList[i])) {