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

TestEmptyBootstrapMethodsAttr.java fails when run with TEST_THREAD_FACTORY=Virtual

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 25
    • 25
    • hotspot
    • b26

        The test launches a child process with the only purpose of validating that the load of mainClass (emptynumbootstrapmethods1/emptynumbootstrapmethods2) completes successfully and doesn’t throw ClassFormatError. The class doesn’t define a main method, so later during execution of LauncherHelper.validateMainMethod the child VM exits with the following error message which we check from the OutputAnalyzer output:

        Error: Main method not found in class emptynumbootstrapmethods1, please define the main method as:
           public static void main(String[] args)
        or a JavaFX application class must extend javafx.application.Application

        The issue when the test is run with TEST_THREAD_FACTORY=Virtual is that loading of emptynumbootstrapmethods1 is done in jdk.test.lib.process.ProcessTools.main (the actual entry point), which instead of calling MethodFinder.findMainMethod(mainClass) uses
        “Method mainMethod = c.getMethod("main", new Class<?>[] { String[].class });” which throws an exception instead and the test exits with the following error message:

        [Exception in thread "main" java.lang.NoSuchMethodException: emptynumbootstrapmethods1.main([Ljava.lang.String;)
        at java.base/java.lang.Class.getMethod(Class.java:2166)
        at jdk.test.lib.process.ProcessTools.main(ProcessTools.java:984)

        We need to adjust the output we check for based on whether the test was run on a platform thread or a virtual thread.

              pchilanomate Patricio Chilano Mateo
              pchilanomate Patricio Chilano Mateo
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: