Issue
I'm trying to switch our legacy eclipse-plugin-based multi-modules project to Java-11, and made almost everything, except the "eclipse-test-plugin" projects. All of them throw a similar error
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.eclipse.osgi.internal.baseadaptor.BaseStorage (file:/home/USER/.m2/repository/p2/osgi/bundle/org.eclipse.osgi/3.9.1.v20140110-1610/org.eclipse.osgi-3.9.1.v20140110-1610.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.eclipse.osgi.internal.baseadaptor.BaseStorage
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
An error has occurred. See the log file
/home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration/1599554461428.log.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.877 s
[INFO] Finished at: 2020-09-08T04:41:01-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-surefire-plugin:2.0.0:test (default-test) on project TEST-PROJECT: An unexpected error occurred while launching the test runtime (process returned error code 13). Command-line used to launch the sub-process was null -Dosgi.noShutdown=false -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 --illegal-access=permit -Dosgi.clean=true -jar /home/USER/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.3.0.v20130327-1440/org.eclipse.equinox.launcher-1.3.0.v20130327-1440.jar -data /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/data -install /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work -configuration /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties in working directory /home/USER/projects/java/PATH-TO-TEST-PROJECT -> [Help 1]
Here is the log file
!SESSION 2020-09-08 04:41:01.199 -----------------------------------------------
eclipse.buildId=unknown
java.version=11.0.7
java.vendor=AdoptOpenJDK
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments: -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties
Command-line arguments: -data /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/data -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties
!ENTRY org.eclipse.osgi 4 0 2020-09-08 04:41:01.829
!MESSAGE Startup error
!STACK 1
java.lang.RuntimeException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:233)
at org.eclipse.osgi.framework.internal.core.Framework.launch(Framework.java:656)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:275)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
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:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:225)
... 11 more
Caused by: java.lang.IllegalStateException: The System Bundle could not be resolved: Missing Constraint: Bundle-RequiredExecutionEnvironment: J2SE-1.5
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.checkSystemState(BaseStorage.java:827)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.getStateManager(BaseStorage.java:800)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.getState(BaseAdaptor.java:387)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.frameworkStart(BaseStorage.java:923)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.frameworkStart(BaseAdaptor.java:250)
at org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start(SystemBundleActivator.java:60)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
... 13 more
MANIFEST.MF looks like
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: PROJECT Test
Bundle-SymbolicName: TEST-PROJECT
Bundle-Version: 2.1.2
Bundle-Vendor: VENDOR
Fragment-Host: PROJECT-WHICH-IS-TESTED
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.junit
Require-Bundle: org.junit
Automatic-Module-Name: TEST-PROJECT
and here is the parent pom with tycho-surefire-plugin
<pluginManagement>
...
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<aggregate>true</aggregate>
<argLine>
--illegal-access=permit
</argLine>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Here is the pom of the TEST-PROJECT
...
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<testSuite>${project.artifactId}</testSuite>
<testClass>${project.artifactId}.suite.TestSuite</testClass>
</configuration>
</plugin>
</plugins>
</build>
...
If run mvn clean install -X -e then I'll get
!ENTRY org.eclipse.osgi 4 0 2020-09-08 03:11:41.320
!MESSAGE Startup error
!STACK 1
java.lang.RuntimeException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:233)
at org.eclipse.osgi.framework.internal.core.Framework.launch(Framework.java:656)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:275)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
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:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:225)
... 11 more
Caused by: java.lang.IllegalStateException: The System Bundle could not be resolved: Missing Constraint: Bundle-RequiredExecutionEnvironment: J2SE-1.5
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.checkSystemState(BaseStorage.java:827)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.getStateManager(BaseStorage.java:800)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.getState(BaseAdaptor.java:387)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.frameworkStart(BaseStorage.java:923)
at org.eclipse.osgi.baseadaptor.BaseAdaptor.frameworkStart(BaseAdaptor.java:250)
at org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start(SystemBundleActivator.java:60)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
... 13 more
An error has occurred. See the log file
/home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration/1599549100674.log.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 49.043 s
[INFO] Finished at: 2020-09-08T03:11:41-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-surefire-plugin:1.7.0:test (default-test) on project com.navteq.phoenix.datatest.test: An unexpected error occurred while launching the test runtime (process returned error code 13). Command-line used to launch the sub-process was null -Dosgi.noShutdown=false -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 --illegal-access=permit -Dosgi.clean=true -jar /home/USER/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.3.0.v20130327-1440/org.eclipse.equinox.launcher-1.3.0.v20130327-1440.jar -debug -consolelog -data /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/data -install /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work -configuration /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties in working directory /home/USER/projects/java/PATH-TO-TEST-PROJECT -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-surefire-plugin:1.7.0:test (default-test) on project com.navteq.phoenix.datatest.test: An unexpected error occurred while launching the test runtime (process returned error code 13). Command-line used to launch the sub-process was null -Dosgi.noShutdown=false -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 --illegal-access=permit -Dosgi.clean=true -jar /home/USER/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.3.0.v20130327-1440/org.eclipse.equinox.launcher-1.3.0.v20130327-1440.jar -debug -consolelog -data /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/data -install /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work -configuration /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties in working directory /home/USER/projects/java/PATH-TO-TEST-PROJECT
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
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)
Caused by: org.apache.maven.plugin.MojoFailureException: An unexpected error occurred while launching the test runtime (process returned error code 13). Command-line used to launch the sub-process was null -Dosgi.noShutdown=false -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86_64 --illegal-access=permit -Dosgi.clean=true -jar /home/USER/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.3.0.v20130327-1440/org.eclipse.equinox.launcher-1.3.0.v20130327-1440.jar -debug -consolelog -data /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/data -install /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work -configuration /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/work/configuration -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties /home/USER/projects/java/PATH-TO-TEST-PROJECT/target/surefire.properties in working directory /home/USER/projects/java/PATH-TO-TEST-PROJECT
at org.eclipse.tycho.surefire.TestMojo.runTest (TestMojo.java:1093)
at org.eclipse.tycho.surefire.TestMojo.execute (TestMojo.java:712)
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)
[ERROR]
[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/MojoFailureException
So could someone give some advice on what should I do in this situation?
P.S. Earlier all run successfully on Java8 with tycho-surefire 0.18.1 and Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Solution
I believe that I've found the main root of my problem. The point is that in my parent pom.xml there was set an "Eclipse Kepler" as a repository. That's why when I used JavaSE-1.8, surefire plugin worked as expected, but when I switched to JavaSE-11, "Kepler" turned out to be obsolete and as a result, I get a strange error about
Missing Constraint: Bundle-RequiredExecutionEnvironment: J2SE-1.5
After changing to the latest eclipse repository, all tests were compiled and passed successfully.
Answered By - Andrqxa
Answer Checked By - Dawn Plyler (JavaFixing Volunteer)