unitsofmeasurement / indriya

JSR 385 - Reference Implementation
Other
115 stars 40 forks source link

Unsupported major.minor version 56 using version 2.1.3 #390

Closed aaime closed 1 year ago

aaime commented 1 year ago

Our library (GeoTools) recently switched to version 2.1.3 and a Java 11 build now reports this warning:

[WARNING] Exception for '/home/aaime/.m2/repository/tech/units/indriya/2.1.3/indriya-2.1.3.jar'.
java.lang.module.InvalidModuleDescriptorException: Unsupported major.minor version 56.0
    at jdk.internal.module.ModuleInfo.invalidModuleDescriptor (ModuleInfo.java:1091)
    at jdk.internal.module.ModuleInfo.doRead (ModuleInfo.java:195)
    at jdk.internal.module.ModuleInfo.read (ModuleInfo.java:131)
    at java.lang.module.ModuleDescriptor.read (ModuleDescriptor.java:2487)
    at org.codehaus.plexus.languages.java.jpms.BinaryModuleInfoParser.parse (BinaryModuleInfoParser.java:35)
    at org.codehaus.plexus.languages.java.jpms.AbstractBinaryModuleInfoParser.getModuleDescriptor (AbstractBinaryModuleInfoParser.java:84)
    at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePath (LocationManager.java:340)
    at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths (LocationManager.java:201)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.newStartupConfigWithModularPath (AbstractSurefireMojo.java:2011)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.createStartupConfiguration (AbstractSurefireMojo.java:1889)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.createForkStarter (AbstractSurefireMojo.java:2374)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider (AbstractSurefireMojo.java:1310)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked (AbstractSurefireMojo.java:1159)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute (AbstractSurefireMojo.java:932)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

It's as if the module information was built with Java 12... odd?

keilw commented 1 year ago

I'm afraid, you are facing a Java 11 bug like the one we saw here earlier (not within our own scope) with JPMS and Multi-Release JARs #377 In #301 we also described a problem that seemed fixed in Java 13 or higher but it does not work in 11. Is there a chance to build GeoTools with Java 11 compatible settings but use a JDK between 12 and 17? That to our knowledge should resolve the problem.

keilw commented 1 year ago

If you run the console-demo-java11 with JDK 11, the same error occurs, but any JDK from jdk-12.0.1 on runs without the problem. Closing this as a duplicate of mainly #301