Uploaded image for project: 'Code Tools'
  1. Code Tools
  2. CODETOOLS-7901450

java.lang.ClassCircularityError: sun/util/resources/provider/NonEnLocaleDataMetaInfo if security policy file has bad format on non-en locale

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • None
    • tools
    • None
    • generic
    • generic

      How to reproduce it:
      1. customize an existing regression tests with policy file.
      Such as jdk9-dev/jdk/test/java/net/URLPermission/policy.2
      change
       permission "java.net.SocketPermission" "localhost:1024-", "listen,resolve,accept";
      to
       permission "java.net.SocketPermission" "localhost:1024-" "listen,resolve,accept";
      2. run the test with latest jdk9 dev nightly build.
      3. my locale is CN

      It will fail with following error:
      ----------messages:(3/150)----------
      command: main URLTest two
      reason: User specified action: run main/othervm/java.security.policy=policy.2 URLTest two
      elapsed time (seconds): 0.366
      ----------System.out:(0/0)----------
      ----------System.err:(110/8134)----------
      Exception in thread "main" java.lang.ClassCircularityError: sun/util/resources/provider/NonEnLocaleDataMetaInfo
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:370)
      at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:368)
      at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:321)
      at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:405)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:407)
      at java.util.ServiceLoader$1.next(ServiceLoader.java:478)
      at sun.util.locale.provider.JRELocaleProviderAdapter$1.run(JRELocaleProviderAdapter.java:430)
      at sun.util.locale.provider.JRELocaleProviderAdapter$1.run(JRELocaleProviderAdapter.java:425)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.util.locale.provider.JRELocaleProviderAdapter.createSupportedLocaleString(JRELocaleProviderAdapter.java:425)
      at sun.util.locale.provider.JRELocaleProviderAdapter.createLanguageTagSet(JRELocaleProviderAdapter.java:406)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getLanguageTagSet(JRELocaleProviderAdapter.java:396)
      at sun.util.locale.provider.JRELocaleProviderAdapter.lambda$getNumberFormatProvider$5(JRELocaleProviderAdapter.java:230)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getNumberFormatProvider(JRELocaleProviderAdapter.java:226)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getLocaleServiceProvider(JRELocaleProviderAdapter.java:97)
      at sun.util.locale.provider.LocaleProviderAdapter.findAdapter(LocaleProviderAdapter.java:284)
      at sun.util.locale.provider.LocaleProviderAdapter.getAdapter(LocaleProviderAdapter.java:254)
      at java.text.NumberFormat.getInstance(NumberFormat.java:859)
      at java.text.NumberFormat.getInstance(NumberFormat.java:442)
      at java.text.MessageFormat.subformat(MessageFormat.java:1271)
      at java.text.MessageFormat.format(MessageFormat.java:865)
      at java.text.Format.format(Format.java:157)
      at sun.security.provider.PolicyParser$ParsingException.<init>(PolicyParser.java:1347)
      at sun.security.provider.PolicyParser.match(PolicyParser.java:777)
      at sun.security.provider.PolicyParser.parseGrantEntry(PolicyParser.java:558)
      at sun.security.provider.PolicyParser.read(PolicyParser.java:189)
      at sun.security.provider.PolicyFile.init(PolicyFile.java:602)
      at sun.security.provider.PolicyFile.access$300(PolicyFile.java:258)
      at sun.security.provider.PolicyFile$3.run(PolicyFile.java:518)
      at sun.security.provider.PolicyFile$3.run(PolicyFile.java:492)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.security.provider.PolicyFile.initPolicyFile(PolicyFile.java:492)
      at sun.security.provider.PolicyFile.initPolicyFile(PolicyFile.java:477)
      at sun.security.provider.PolicyFile.init(PolicyFile.java:436)
      at sun.security.provider.PolicyFile.<init>(PolicyFile.java:296)
      at java.security.Policy.loadPolicyProvider(Policy.java:207)
      at java.security.Policy.getPolicyNoCheck(Policy.java:177)
      at java.security.ProtectionDomain.implies(ProtectionDomain.java:295)
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:446)
      at java.security.AccessController.checkPermission(AccessController.java:894)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:541)
      at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1479)
      at java.lang.ClassLoader$1.run(ClassLoader.java:501)
      at java.lang.ClassLoader$1.run(ClassLoader.java:499)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.lang.ClassLoader.checkPackageAccess(ClassLoader.java:499)
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:759)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:148)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:370)
      at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:368)
      at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:321)
      at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:405)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:407)
      at java.util.ServiceLoader$1.next(ServiceLoader.java:478)
      at sun.util.locale.provider.JRELocaleProviderAdapter$1.run(JRELocaleProviderAdapter.java:430)
      at sun.util.locale.provider.JRELocaleProviderAdapter$1.run(JRELocaleProviderAdapter.java:425)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.util.locale.provider.JRELocaleProviderAdapter.createSupportedLocaleString(JRELocaleProviderAdapter.java:425)
      at sun.util.locale.provider.JRELocaleProviderAdapter.createLanguageTagSet(JRELocaleProviderAdapter.java:406)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getLanguageTagSet(JRELocaleProviderAdapter.java:396)
      at sun.util.locale.provider.JRELocaleProviderAdapter.lambda$getNumberFormatProvider$5(JRELocaleProviderAdapter.java:230)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getNumberFormatProvider(JRELocaleProviderAdapter.java:226)
      at sun.util.locale.provider.JRELocaleProviderAdapter.getLocaleServiceProvider(JRELocaleProviderAdapter.java:97)
      at sun.util.locale.provider.LocaleProviderAdapter.findAdapter(LocaleProviderAdapter.java:284)
      at sun.util.locale.provider.LocaleProviderAdapter.getAdapter(LocaleProviderAdapter.java:254)
      at java.text.NumberFormat.getInstance(NumberFormat.java:859)
      at java.text.NumberFormat.getInstance(NumberFormat.java:442)
      at java.text.MessageFormat.subformat(MessageFormat.java:1271)
      at java.text.MessageFormat.format(MessageFormat.java:865)
      at java.text.Format.format(Format.java:157)
      at sun.security.provider.PolicyParser$ParsingException.<init>(PolicyParser.java:1347)
      at sun.security.provider.PolicyParser.match(PolicyParser.java:777)
      at sun.security.provider.PolicyParser.parseGrantEntry(PolicyParser.java:558)
      at sun.security.provider.PolicyParser.read(PolicyParser.java:189)
      at sun.security.provider.PolicyFile.init(PolicyFile.java:602)
      at sun.security.provider.PolicyFile.access$300(PolicyFile.java:258)
      at sun.security.provider.PolicyFile$3.run(PolicyFile.java:518)
      at sun.security.provider.PolicyFile$3.run(PolicyFile.java:492)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.security.provider.PolicyFile.initPolicyFile(PolicyFile.java:492)
      at sun.security.provider.PolicyFile.initPolicyFile(PolicyFile.java:477)
      at sun.security.provider.PolicyFile.init(PolicyFile.java:436)
      at sun.security.provider.PolicyFile.<init>(PolicyFile.java:296)
      at java.security.Policy.loadPolicyProvider(Policy.java:207)
      at java.security.Policy.getPolicyNoCheck(Policy.java:177)
      at java.security.ProtectionDomain.implies(ProtectionDomain.java:295)
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:446)
      at java.security.AccessController.checkPermission(AccessController.java:894)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:541)
      at java.lang.SecurityManager.checkRead(SecurityManager.java:880)
      at java.io.FileInputStream.<init>(FileInputStream.java:127)
      at java.io.FileInputStream.<init>(FileInputStream.java:93)
      at java.io.FileReader.<init>(FileReader.java:58)
      at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:43)

            Unassigned Unassigned
            xiaofeya Xiaofeng Yang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: