IDEA Code coverage doesn't work with Seam Tests (java.lang.NoClassDefFoundError: sun/reflect/GeneratedConstructorAccessor1)
Hello,
I'm working on a Seam 2.1.1 application (JDK6). All our integration tests (using TestNG) extend org.jboss.seam.mock.SeamTest (which is the standard with Seam).
If I try to enable code coverage with IDEA's runner, the test dies immediately upon starting with the error below.
It does not matter if I choose sampling or tracing. With the EMMA runner it works. IDEA's runner works on regular unit tests, not extending SeamTest.
The class that's not found, "sun/reflect/GeneratedConstructorAccessor1" is not a class physically present in rt.jar or any other library shipped with JDK6 but appears to be generated by sun.reflect.MethodAccessorGenerator.generateName()
It's something to do with constructors, but I cannot yet pinpoint the cause.
Any hints would be appreciated. IDEA is 8.1.2 (#9852).
Thanks,
Vieslav
C:\java\jdk-1.6.13\bin\java -ea -Dsun.lang.ClassLoader.allowArraySyntax=true -Djavax.security.jacc.PolicyConfigurationFactory.provider=org.jboss.security.jacc.JBossPolicyConfigurationFactory "-javaagent:C:\tools\IDEA 8.1.2\lib\coverage-agent.jar=\"C:\Documents and Settings\vieslav\.IntelliJIdea8x\system\coverage\oas$OrganizationServiceTest.ic\" false false" -Didea.launcher.port=7536 "-Didea.launcher.bin.path=C:\tools\IDEA 8.1.2\bin" -Dfile.encoding=windows-1252 -classpath "C:\tools\IDEA 8.1.2\plugins\testng\lib\testng-jdk15.jar;C:\tools\IDEA 8.1.2\plugins\testng\lib\testng.jar;C:\tools\IDEA 8.1.2\lib\coverage-agent.jar;C:\dev\workspaces\fas\core\target\test-classes;C:\dev\workspaces\fas\core\target\classes;C:\java\jdk-1.6.13\jre\lib\charsets.jar;C:\java\jdk-1.6.13\jre\lib\deploy.jar;C:\java\jdk-1.6.13\jre\lib\javaws.jar;C:\java\jdk-1.6.13\jre\lib\jce.jar;C:\java\jdk-1.6.13\jre\lib\jsse.jar;C:\java\jdk-1.6.13\jre\lib\management-agent.jar;C:\java\jdk-1.6.13\jre\lib\plugin.jar;C:\java\jdk-1.6.13\jre\lib\resources.jar;C:\java\jdk-1.6.13\jre\lib\rt.jar;C:\java\jdk-1.6.13\jre\lib\ext\dnsns.jar;C:\java\jdk-1.6.13\jre\lib\ext\localedata.jar;C:\java\jdk-1.6.13\jre\lib\ext\sunjce_provider.jar;C:\java\jdk-1.6.13\jre\lib\ext\sunmscapi.jar;C:\java\jdk-1.6.13\jre\lib\ext\sunpkcs11.jar;c:\dev\m2-repository\antlr\antlr\2.7.6\antlr-2.7.6.jar;c:\dev\m2-repository\asm\asm\1.5.3\asm-1.5.3.jar;c:\dev\m2-repository\asm\asm-attrs\1.5.3\asm-attrs-1.5.3.jar;c:\dev\m2-repository\cglib\cglib\2.1_3\cglib-2.1_3.jar;c:\dev\m2-repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;c:\dev\m2-repository\commons-collections\commons-collections\3.2\commons-collections-3.2.jar;c:\dev\m2-repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;c:\dev\m2-repository\dom4j\dom4j\1.6.1-brew\dom4j-1.6.1-brew.jar;c:\dev\m2-repository\net\sf\ehcache\ehcache\1.2.3\ehcache-1.2.3.jar;c:\dev\m2-repository\javax\ejb\ejb-api\3.0\ejb-api-3.0.jar;c:\dev\m2-repository\javax\el\el-api\1.0\el-api-1.0.jar;c:\dev\m2-repository\org\hamcrest\hamcrest-core\1.1\hamcrest-core-1.1.jar;c:\dev\m2-repository\org\hamcrest\hamcrest-library\1.1\hamcrest-library-1.1.jar;c:\dev\m2-repository\org\hibernate\hibernate\3.2.4.sp1\hibernate-3.2.4.sp1.jar;c:\dev\m2-repository\org\hibernate\hibernate-annotations\3.3.0.ga\hibernate-annotations-3.3.0.ga.jar;c:\dev\m2-repository\org\hibernate\hibernate-validator\3.0.0.GA\hibernate-validator-3.0.0.GA.jar;c:\dev\m2-repository\org\jboss\el\jboss-el\1.0_02.CR2\jboss-el-1.0_02.CR2.jar;c:\dev\m2-repository\org\jboss\seam\jboss-seam\2.1.1.GA\jboss-seam-2.1.1.GA.jar;c:\dev\m2-repository\org\jmock\jmock\2.2.0\jmock-2.2.0.jar;c:\dev\m2-repository\org\jmock\jmock-junit4\2.2.0\jmock-junit4-2.2.0.jar;c:\dev\m2-repository\javax\annotation\jsr250-api\1.0\jsr250-api-1.0.jar;c:\dev\m2-repository\javax\transaction\jta\1.0.1B\jta-1.0.1B.jar;c:\dev\m2-repository\log4j\log4j\1.2.14\log4j-1.2.14.jar;c:\dev\m2-repository\oracle-thin\ojdbc14\10.1.0.4.0\ojdbc14-10.1.0.4.0.jar;c:\dev\m2-repository\javax\persistence\persistence-api\1.0\persistence-api-1.0.jar;C:\tools\IDEA 8.1.2\lib\javaee.jar;c:\dev\m2-repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;c:\dev\m2-repository\org\jboss\embedded\jboss-embedded-all\beta3.SP5\jboss-embedded-all-beta3.SP5.jar;c:\dev\m2-repository\org\jboss\embedded\jboss-embedded\beta3.SP5\jboss-embedded-beta3.SP5.jar;c:\dev\m2-repository\org\jboss\microcontainer\jboss-deployers-client-spi\2.0.0.Beta6\jboss-deployers-client-spi-2.0.0.Beta6.jar;c:\dev\m2-repository\org\jboss\microcontainer\jboss-deployers-core-spi\2.0.0.Beta6\jboss-deployers-core-spi-2.0.0.Beta6.jar;c:\dev\m2-repository\org\jboss\embedded\thirdparty-all\beta3.SP5\thirdparty-all-beta3.SP5.jar;c:\dev\m2-repository\org\jboss\embedded\jboss-embedded-api\beta2\jboss-embedded-api-beta2.jar;c:\dev\m2-repository\org\jboss\embedded\jboss-deployers\beta2\jboss-deployers-beta2.jar;c:\dev\m2-repository\org\hibernate\hibernate-entitymanager\3.3.1.ga\hibernate-entitymanager-3.3.1.ga.jar;c:\dev\m2-repository\org\hibernate\hibernate-commons-annotations\3.0.0.ga\hibernate-commons-annotations-3.0.0.ga.jar;c:\dev\m2-repository\javassist\javassist\3.8.0.GA\javassist-3.8.0.GA.jar;c:\dev\m2-repository\jboss\jboss-common-core\2.0.4.GA\jboss-common-core-2.0.4.GA.jar;c:\dev\m2-repository\org\jboss\slf4j\slf4j-jboss-logging\1.0.0.GA\slf4j-jboss-logging-1.0.0.GA.jar;c:\dev\m2-repository\org\slf4j\slf4j-api\1.5.0\slf4j-api-1.5.0.jar;c:\dev\m2-repository\org\jboss\logging\jboss-logging-spi\2.0.5.GA\jboss-logging-spi-2.0.5.GA.jar;c:\dev\m2-repository\org\testng\testng\5.6\testng-5.6.jar;c:\dev\m2-repository\javax\faces\jsf-api\1.2_09-BETA1\jsf-api-1.2_09-BETA1.jar;c:\dev\m2-repository\javax\faces\jsf-impl\1.2_09-BETA1\jsf-impl-1.2_09-BETA1.jar;C:\tools\IDEA 8.1.2\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.testng.remote.RemoteTestNG -port 5000 -listener org.testng.IDEACoverageListener -sourcedir C:/dev/workspaces/fas/core/src/main/java;C:/dev/workspaces/fas/core/src/main/resources;C:/dev/workspaces/fas/core/src/test/java;C:/dev/workspaces/fas/core/src/test/resources "C:\Documents and Settings\vieslav\.IntelliJIdea8x\system\temp-testng-customsuite.xml"
[Parser] Running:
C:\Documents and Settings\vieslav\.IntelliJIdea8x\system\temp-testng-customsuite.xml
[[TestNGClassFinder]] Unable to read methods on class org.xyz.oas.services.tests.OrganizationServiceTest - unable to resolve class reference sun/reflect/GeneratedConstructorAccessor1
java.lang.NoClassDefFoundError: sun/reflect/GeneratedConstructorAccessor1
===============================================
at sun.reflect.GeneratedConstructorAccessor1.<clinit>(Unknown Source)
Custom suite
at sun.misc.Unsafe.allocateInstance(Native Method)
Total tests run: 0, Failures: 0, Skips: 0
===============================================
at sun.reflect.BootstrapConstructorAccessorImpl.newInstance(BootstrapConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
at java.security.AccessController.doPrivileged(Native Method)
at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
at sun.reflect.MethodAccessorGenerator.generateConstructor(MethodAccessorGenerator.java:76)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:30)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:588)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Method.declaredAnnotations(Method.java:695)
at java.lang.reflect.Method.getAnnotation(Method.java:679)
at org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(JDK15AnnotationFinder.java:87)
at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:55)
at org.testng.TestRunner.initMethods(TestRunner.java:289)
at org.testng.TestRunner.init(TestRunner.java:235)
at org.testng.TestRunner.init(TestRunner.java:197)
at org.testng.TestRunner.<init>(TestRunner.java:155)
at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:102)
at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:154)
at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:529)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:250)
at org.testng.SuiteRunner.run(SuiteRunner.java:204)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:867)
at org.testng.TestNG.runSuitesLocally(TestNG.java:832)
at org.testng.TestNG.run(TestNG.java:748)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: java.lang.ClassNotFoundException: sun.reflect.GeneratedConstructorAccessor1
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 41 more
Process finished with exit code 0
Please sign in to leave a comment.
Hello Vieslav,
It is possible to workaround the issue by specifying the packages to gather
coverage in.
Sorry for inconvenience.
Thank you
-
Anna Kozlova
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"