Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8314263

Signed jars triggering Logger finder recursion and StackOverflowError

    XMLWordPrintable

Details

    Backports

      Description

        Dividends paying off from porting JDK-8048190 to 11u. We have root cause of NoClassDefFoundError.

        Logger call logic changed in JDK-8292033

        java.lang.NoClassDefFoundError: Could not initialize class jdk.internal.logger.SimpleConsoleLogger$CallerFinder
        at java.base/jdk.internal.logger.SimpleConsoleLogger.getCallerInfo(SimpleConsoleLogger.java:194)
        at java.base/jdk.internal.logger.SimpleConsoleLogger.log(SimpleConsoleLogger.java:122)
        at java.base/java.lang.System$Logger.log(System.java:1241)
        at java.base/jdk.internal.logger.LoggerFinderLoader.loadLoggerFinder(LoggerFinderLoader.java:155)
        at java.base/jdk.internal.logger.LoggerFinderLoader.service(LoggerFinderLoader.java:73)
        at java.base/jdk.internal.logger.LoggerFinderLoader.getLoggerFinder(LoggerFinderLoader.java:206)
        at java.base/java.lang.System$LoggerFinder.lambda$accessProvider$0(System.java:1622)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:430)
        at java.base/java.lang.System$LoggerFinder.accessProvider(System.java:1623)
        at java.base/java.lang.System$LoggerFinder.getLoggerFinder(System.java:1611)
        at java.base/jdk.internal.logger.LazyLoggers.accessLoggerFinder(LazyLoggers.java:339)
        at java.base/jdk.internal.logger.LazyLoggers.getLoggerFromFinder(LazyLoggers.java:389)
        at java.base/jdk.internal.logger.LazyLoggers.getLazyLogger(LazyLoggers.java:444)
        at java.base/jdk.internal.logger.LazyLoggers.getLogger(LazyLoggers.java:414)
        at java.base/java.lang.System.getLogger(System.java:1673)
        at java.base/jdk.internal.event.EventHelper.isLoggingSecurity(EventHelper.java:145)
        at java.base/sun.security.jca.JCAUtil.tryCommitCertEvent(JCAUtil.java:104)

        Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.StackOverflowError [in thread "main"]
        at java.base/java.lang.StackWalker.<clinit>(StackWalker.java:291)
        at java.base/jdk.internal.logger.SimpleConsoleLogger$CallerFinder$1.run(SimpleConsoleLogger.java:211)
        at java.base/jdk.internal.logger.SimpleConsoleLogger$CallerFinder$1.run(SimpleConsoleLogger.java:208)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/jdk.internal.logger.SimpleConsoleLogger$CallerFinder.<clinit>(SimpleConsoleLogger.java:214)
        at java.base/jdk.internal.logger.SimpleConsoleLogger.getCallerInfo(SimpleConsoleLogger.java:194)
        at java.base/jdk.internal.logger.SimpleConsoleLogger.log(SimpleConsoleLogger.java:122)
        at java.base/java.lang.System$Logger.log(System.java:1241)
        at java.base/jdk.internal.logger.LoggerFinderLoader.loadLoggerFinder(LoggerFinderLoader.java:155)
        at java.base/jdk.internal.logger.LoggerFinderLoader.service(LoggerFinderLoader.java:73)
        at java.base/jdk.internal.logger.LoggerFinderLoader.getLoggerFinder(LoggerFinderLoader.java:206)
        at java.base/java.lang.System$LoggerFinder.lambda$accessProvider$0(System.java:1622)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:430)
        at java.base/java.lang.System$LoggerFinder.accessProvider(System.java:1623)
        at java.base/java.lang.System$LoggerFinder.getLoggerFinder(System.java:1611)
        at java.base/jdk.internal.logger.LazyLoggers.accessLoggerFinder(LazyLoggers.java:339)
        at java.base/jdk.internal.logger.LazyLoggers.getLoggerFromFinder(LazyLoggers.java:389)
        at java.base/jdk.internal.logger.LazyLoggers.getLazyLogger(LazyLoggers.java:444)
        at java.base/jdk.internal.logger.LazyLoggers.getLogger(LazyLoggers.java:414)
        at java.base/java.lang.System.getLogger(System.java:1673)
        at java.base/jdk.internal.event.EventHelper.isLoggingSecurity(EventHelper.java:145)
        at java.base/sun.security.jca.JCAUtil.tryCommitCertEvent(JCAUtil.java:104)
        at java.base/java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:356)

        Attachments

          Issue Links

            Activity

              People

                coffeys Sean Coffey
                shadowbug Shadow Bug
                Votes:
                0 Vote for this issue
                Watchers:
                14 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: