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

Recently added OutOfBoundsTest fails

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • repo-panama
    • repo-panama
    • tools

      Test fails with the following exception:

      org.testng.TestNGException:
      An error occurred while instantiating class OutOfBoundsTest: null
              at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:394)
              at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:295)
              at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118)
              at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183)
              at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128)
              at org.testng.TestRunner.initMethods(TestRunner.java:415)
              at org.testng.TestRunner.init(TestRunner.java:241)
              at org.testng.TestRunner.init(TestRunner.java:211)
              at org.testng.TestRunner.<init>(TestRunner.java:158)
              at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:546)
              at org.testng.SuiteRunner.init(SuiteRunner.java:159)
              at org.testng.SuiteRunner.<init>(SuiteRunner.java:114)
              at org.testng.TestNG.createSuiteRunner(TestNG.java:1260)
              at org.testng.TestNG.createSuiteRunners(TestNG.java:1247)
              at org.testng.TestNG.runSuitesLocally(TestNG.java:1101)
              at org.testng.TestNG.run(TestNG.java:1018)
              at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:94)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:567)
              at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:246)
              at java.base/java.lang.Thread.run(Thread.java:835)
      Caused by: java.lang.ExceptionInInitializerError
              at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
              at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
              at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
              at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
              at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
              at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:382)
              ... 22 more
      Caused by: java.lang.RuntimeException: Failed to generate implementation for class interface OutOfBoundsTest$OutOfBounds
              at java.base/jdk.internal.foreign.LibrariesHelper.generateImpl(LibrariesHelper.java:66)
              at java.base/jdk.internal.foreign.LibrariesHelper$3.computeValue(LibrariesHelper.java:133)
              at java.base/jdk.internal.foreign.LibrariesHelper$3.computeValue(LibrariesHelper.java:125)
              at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:226)
              at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:208)
              at java.base/java.lang.ClassValue.get(ClassValue.java:114)
              at java.base/jdk.internal.foreign.LibrariesHelper.getHeaderImplClass(LibrariesHelper.java:156)
              at java.base/jdk.internal.foreign.LibrariesHelper.bind(LibrariesHelper.java:242)
              at java.base/jdk.internal.foreign.LibrariesHelper.bind(LibrariesHelper.java:261)
              at java.base/java.foreign.Libraries.bind(Libraries.java:63)
              at OutOfBoundsTest.<clinit>(OutOfBoundsTest.java:54)
              ... 29 more
      Caused by: java.lang.RuntimeException: Failed to generate method public abstract void OutOfBoundsTest$OutOfBounds.ptr(java.foreign.memory.Pointer)
              at java.base/jdk.internal.foreign.BinderClassGenerator.generateMembers(BinderClassGenerator.java:154)
              at java.base/jdk.internal.foreign.HeaderImplGenerator.generateMembers(HeaderImplGenerator.java:109)
              at java.base/jdk.internal.foreign.BinderClassGenerator.generate(BinderClassGenerator.java:104)
              at java.base/jdk.internal.foreign.LibrariesHelper.lambda$generateImpl$0(LibrariesHelper.java:63)
              at java.base/java.security.AccessController.doPrivileged(AccessController.java:310)
              at java.base/jdk.internal.foreign.LibrariesHelper.generateImpl(LibrariesHelper.java:62)
              ... 39 more
      Caused by: java.lang.IllegalStateException: java.lang.NoSuchMethodException: Failed to look up symbol ptr
              at java.base/jdk.internal.foreign.HeaderImplGenerator.generateFunctionMethod(HeaderImplGenerator.java:142)
              at java.base/jdk.internal.foreign.HeaderImplGenerator.generateMethodImplementation(HeaderImplGenerator.java:127)
              at java.base/jdk.internal.foreign.BinderClassGenerator.generateMembers(BinderClassGenerator.java:151)
              ... 44 more
      Caused by: java.lang.NoSuchMethodException: Failed to look up symbol ptr
              at java.base/jdk.internal.foreign.SymbolLookup.lookup(SymbolLookup.java:48)
              at java.base/jdk.internal.foreign.HeaderImplGenerator.generateFunctionMethod(HeaderImplGenerator.java:137)
              ... 46 more

      Cause is a direct call to Libraries.bind, without and accompanying Libraries.loadLibrary

      Fix is simple:

      - private static final OutOfBounds lib = Libraries.bind(MethodHandles.lookup(), OutOfBounds.class);
      + private static final OutOfBounds lib = Libraries.bind(OutOfBounds.class, Libraries.loadLibrary(MethodHandles.lookup(), "OutOfBounds"));

            jvernee Jorn Vernee
            jvernee Jorn Vernee
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: