Skip to content

Instantly share code, notes, and snippets.

@chengfang
Created November 15, 2016 02:17
Show Gist options
  • Save chengfang/624cf0124405ceb86c218cba23ae1bf0 to your computer and use it in GitHub Desktop.
Save chengfang/624cf0124405ceb86c218cba23ae1bf0 to your computer and use it in GitHub Desktop.
java.lang.NoSuchMethodError: sun.reflect.ReflectionFactory.newConstructorForSerialization
/Users/cfang/dev/jsr352/jberet-core > mvn -e test -Dtest=org.jberet.job.model.FlowMergerTest#parentSameFile
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jberet-core 1.3.0.Beta4-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-java-version) @ jberet-core ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-maven-version) @ jberet-core ---
[INFO]
[INFO] --- buildnumber-maven-plugin:1.4:create (get-scm-revision) @ jberet-core ---
[INFO] Executing: /bin/sh -c cd '/Users/cfang/dev/jsr352/jberet-core' && 'git' 'rev-parse' '--verify' 'HEAD'
[INFO] Working directory: /Users/cfang/dev/jsr352/jberet-core
[INFO] Storing buildNumber: d333ea3fcc52f54c147562627a878ffbc69f0f41 at timestamp: 1478967291189
[INFO] Storing buildScmBranch: master
[INFO]
[INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ jberet-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 15 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ jberet-core ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ jberet-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 36 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.5.1:testCompile (default-testCompile) @ jberet-core ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ jberet-core ---
[INFO] Surefire report directory: /Users/cfang/dev/jsr352/jberet-core/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.jberet.job.model.FlowMergerTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.251 sec <<< FAILURE! - in org.jberet.job.model.FlowMergerTest
parentSameFile(org.jberet.job.model.FlowMergerTest) Time elapsed: 0.17 sec <<< ERROR!
java.lang.NoSuchMethodError: sun.reflect.ReflectionFactory.newConstructorForSerialization(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
at org.jberet.job.model.FlowMergerTest.parentSameFile(FlowMergerTest.java:21)
Results :
Tests in error:
FlowMergerTest.parentSameFile:21 » NoSuchMethod sun.reflect.ReflectionFactory....
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.773 s
[INFO] Finished at: 2016-11-12T11:14:53-05:00
[INFO] Final Memory: 16M/56M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project jberet-core: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/cfang/dev/jsr352/jberet-core/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project jberet-core: There are test failures.
Please refer to /Users/cfang/dev/jsr352/jberet-core/target/surefire-reports for the individual test results.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:537)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.
Please refer to /Users/cfang/dev/jsr352/jberet-core/target/surefire-reports for the individual test results.
at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.java:91)
at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:320)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:892)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:755)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
[ERROR]
[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/MojoFailureException
/Users/cfang/dev/jsr352/jberet-core >
/Users/cfang/dev/jsr352/jberet-core >
@chengfang
Copy link
Author

chengfang commented Nov 15, 2016

The test code pointed to by the stacktrace shows no use of ReflectionFactory:

java.lang.NoSuchMethodError: sun.reflect.ReflectionFactory.newConstructorForSerialization(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
at org.jberet.job.model.FlowMergerTest.parentSameFile(FlowMergerTest.java:21)

@chengfang
Copy link
Author

chengfang commented Nov 15, 2016

Run with mvn -X option to show the options passed to java command, which shows extra modules were added:

Forking command line: /bin/sh -c cd /Users/cfang/dev/jsr352/jberet-core && /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java --add-modules java.activation,java.annotations.common,java.xml.bind,java.xml.ws -jar /Users/cfang/dev/jsr352/jberet-core/target/surefire/surefirebooter8631640927466293751.jar /Users/cfang/dev/jsr352/jberet-core/target/surefire/surefire590766883302147437tmp /Users/cfang/dev/jsr352/jberet-core/target/surefire/surefire_05089600337462135521tmp
Running org.jberet.job.model.FlowMergerTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.24 sec <<< FAILURE! - in org.jberet.job.model.FlowMergerTest
parentSameFile(org.jberet.job.model.FlowMergerTest)  Time elapsed: 0.153 sec  <<< ERROR!
java.lang.NoSuchMethodError: sun.reflect.ReflectionFactory.newConstructorForSerialization(Ljava/lang/Class;Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
	at org.jberet.job.model.FlowMergerTest.parentSameFile(FlowMergerTest.java:21)

@chengfang
Copy link
Author

        <profile>
            <id>modularizedJdk</id>
            <activation>
                <jdk>9</jdk>
            </activation>
            <properties>
                <modular.jdk.args>
                    --add-modules java.activation,java.annotations.common,java.xml.bind,java.xml.ws
                </modular.jdk.args>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>${version.compiler.plugin}</version>
                        <configuration>
                            <!-- fork is needed so compiler args can be used -->
                            <fork>true</fork>
                            <compilerArgs>
                                <arg>-J--add-modules</arg>
                                <arg>-Jjava.annotations.common</arg>
                                <arg>-Aorg.jboss.logging.tools.level=INFO</arg>
                            </compilerArgs>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment