birt icon indicating copy to clipboard operation
birt copied to clipboard

Build Failure with GraalVM 8

Open cheeseng opened this issue 3 years ago • 6 comments

When using latest GraalVM 8 to build, it fails with:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  42:26 min
[INFO] Finished at: 2021-03-15T20:47:30+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (javadoc) on project org.eclipse.birt.chart.doc.isv: An Ant BuildException has occured: The following error occurred while executing this line:
[ERROR] /home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/BuildChartISVDoc.xml:251: javax.script.ScriptException: org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (getProperty) on org.apache.tools.ant.Project@2bc5b8a failed due to: Unknown identifier: getProperty
[ERROR] around Ant part ...<ant antfile="/home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/BuildChartISVDoc.xml" target="Javadoc">... @ 5:116 in /home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf org.eclipse.birt:org.eclipse.birt.chart.doc.isv

Fyi my graalvm version:

cheeseng@cheeseng-RAVEN:~$ java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b07)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.0.2 (build 25.282-b07-jvmci-21.0-b06, mixed mode)

cheeseng avatar Mar 15 '21 13:03 cheeseng

This is being caused by using tools.jar classes that are apparently not shipped by graalvm.

I am currently preparing the build to run also on Java11 which gives me similar issues. I have resolved some of them.

Please try to build against my branch prepare_for_java11 to see if you get any further.

wimjongman avatar Mar 15 '21 14:03 wimjongman

Ping!

wimjongman avatar Mar 17 '21 16:03 wimjongman

@wimjongman I tried to build your prepare_for_java11 with graalvm jdk8 but unable to:

Caused by: java.lang.UnsupportedClassVersionError: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1 (Native Method)
    at java.lang.ClassLoader.defineClass (ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass (URLClassLoader.java:468)
    at java.net.URLClassLoader.access$100 (URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run (URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged (Native Method)
    at java.net.URLClassLoader.findClass (URLClassLoader.java:362)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf (ClassRealm.java:425)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
    at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:139)
    at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:46)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
    at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision (BeanScheduler.java:230)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:120)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get (SingletonScope.java:168)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get (InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at java.util.AbstractMap.get (AbstractMap.java:187)
    at org.apache.maven.repository.legacy.LegacyRepositorySystem.getLayout (LegacyRepositorySystem.java:861)
    at org.apache.maven.repository.legacy.LegacyRepositorySystem.buildArtifactRepository (LegacyRepositorySystem.java:807)
    at org.apache.maven.project.DefaultProjectBuildingHelper.createArtifactRepositories (DefaultProjectBuildingHelper.java:95)
    at org.apache.maven.project.DefaultModelBuildingListener.buildExtensionsAssembled (DefaultModelBuildingListener.java:120)
    at org.apache.maven.model.building.ModelBuildingEventCatapult$1.fire (ModelBuildingEventCatapult.java:44)
    at org.apache.maven.model.building.DefaultModelBuilder.fireEvent (DefaultModelBuilder.java:1368)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:460)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
    at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    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 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    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)
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Invalid artifact repository: Unable to provision, see the following errors:

1) Error in custom provider, java.lang.TypeNotPresentException: Type org.eclipse.tycho.core.p2.P2ArtifactRepositoryLayout not present
  at ClassRealm[extension>org.eclipse.tycho:tycho-maven-plugin:2.2.0, parent: sun.misc.Launcher$AppClassLoader@7852e922] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout annotated with @com.google.inject.name.Named(value=p2)

1 error @ 
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project org.eclipse.birt:birt-report-all-in-one:4.9.0-SNAPSHOT (/home/cheeseng/git/birt/build/birt-packages/birt-report-all-in-one/pom.xml) has 1 error
[ERROR]     Invalid artifact repository: Unable to provision, see the following errors:
[ERROR]     
[ERROR]     1) Error in custom provider, java.lang.TypeNotPresentException: Type org.eclipse.tycho.core.p2.P2ArtifactRepositoryLayout not present
[ERROR]       at ClassRealm[extension>org.eclipse.tycho:tycho-maven-plugin:2.2.0, parent: sun.misc.Launcher$AppClassLoader@7852e922] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
[ERROR]       while locating org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout annotated with @com.google.inject.name.Named(value=p2)
[ERROR]     
[ERROR]     1 error: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

It seems to require jdk11, would you still plan to keep the jdk8 build working?

Cheers.

cheeseng avatar Mar 18 '21 01:03 cheeseng

@wimjongman By the way I built master branch in another mac laptop with adoptopenjdk 8 and it builds fine.

cheeseng avatar Mar 18 '21 01:03 cheeseng

Do we want to keep this open? Seems it can be closed even if @cheeseng solution is not the ideal, it is a work around for now.

pipebaum avatar Mar 24 '21 19:03 pipebaum

The issue is that it is not building with GraalVM. This has not been resolved.

wimjongman avatar Mar 25 '21 08:03 wimjongman

JDK8 is not supported

wimjongman avatar Sep 27 '22 12:09 wimjongman