Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.ClassCircularityError when publishing TestNG results #63

Closed
michael-bryson opened this issue Sep 14, 2016 · 10 comments · Fixed by #64
Closed

java.lang.ClassCircularityError when publishing TestNG results #63

michael-bryson opened this issue Sep 14, 2016 · 10 comments · Fixed by #64

Comments

@michael-bryson
Copy link

michael-bryson commented Sep 14, 2016

I am trying to use the plugin to publish my testng results but I get the error below:

[TestNGReportPublisher] Compiling TestNG Html Reports ...
[TestNG test report builder] Copying XML files from: /var/lib/jenkins/workspace/worker-langdetect-container-nightly to reports directory: /var/lib/jenkins/jobs/worker-langdetect-container-nightly/builds/65/testng-reports-with-handlebars
[TestNGReportPublisher] Found 1 xml files.
[TestNG test report builder] 0. Found a xml file: target/failsafe-reports/testng-results.xml
[TestNG test report builder] Generating HTML reports
processing: /var/lib/jenkins/jobs/worker-langdetect-container-nightly/builds/65/testng-reports-with-handlebars/xmlData/target/failsafe-reports/testng-results.xml
ERROR: Step ‘Publish TestNG reports generated with handlebars’ aborted due to exception: 
java.lang.ClassCircularityError: org/antlr/v4/runtime/atn/PredictionContext
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1139)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:801)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1310)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jenkinsci.bytecode.ClassWriter.loadClass(ClassWriter.java:97)
    at org.jenkinsci.bytecode.ClassWriter.getCommonSuperClass(ClassWriter.java:64)
    at org.kohsuke.asm5.ClassWriter.getMergedType(ClassWriter.java:1654)
    at org.kohsuke.asm5.Frame.merge(Frame.java:1426)
    at org.kohsuke.asm5.Frame.merge(Frame.java:1325)
    at org.kohsuke.asm5.MethodWriter.visitMaxs(MethodWriter.java:1475)
    at org.kohsuke.asm5.tree.MethodNode.accept(MethodNode.java:833)
    at org.kohsuke.asm5.commons.JSRInlinerAdapter.visitEnd(JSRInlinerAdapter.java:187)
    at org.jenkinsci.bytecode.Transformer$1$1.visitEnd(Transformer.java:107)
    at org.kohsuke.asm5.MethodVisitor.visitEnd(MethodVisitor.java:877)
    at org.kohsuke.asm5.ClassReader.readMethod(ClassReader.java:1021)
    at org.kohsuke.asm5.ClassReader.accept(ClassReader.java:693)
    at org.kohsuke.asm5.ClassReader.accept(ClassReader.java:506)
    at org.jenkinsci.bytecode.Transformer.transform(Transformer.java:113)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:800)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1310)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.github.jknack.handlebars.internal.HbsLexer.<clinit>(HbsLexer.java:17)
    at com.github.jknack.handlebars.internal.HbsParserFactory.newLexer(HbsParserFactory.java:141)
    at com.github.jknack.handlebars.internal.HbsParserFactory.access$200(HbsParserFactory.java:47)
    at com.github.jknack.handlebars.internal.HbsParserFactory$1.parse(HbsParserFactory.java:74)
    at com.github.jknack.handlebars.cache.NullTemplateCache.get(NullTemplateCache.java:54)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:414)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:357)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:343)
    at com.github.bogdanlivadariu.reporting.testng.builder.TestNgReportBuilder.writeTestsByClassOverview(TestNgReportBuilder.java:66)
    at com.github.bogdanlivadariu.reporting.testng.builder.TestNgReportBuilder.writeReportsOnDisk(TestNgReportBuilder.java:112)
    at com.github.bogdanlivadariu.jenkins.reporting.testng.TestNGTestReportPublisher.perform(TestNGTestReportPublisher.java:161)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:785)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:726)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1047)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
    at hudson.model.Run.execute(Run.java:1766)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)

The testng-results.xml file is attached (extension renamed to txt)

testng-results.xml.txt

@BogdanLivadariu
Copy link
Contributor

@michael-bryson thanks for raising this thing,

I had a similar issue with junit reporting module, but did not managed to reproduce it locally,

will release a new version with the same fix, and hope this will get you going

will let you know when the new hpi is deployed

@BogdanLivadariu
Copy link
Contributor

@michael-bryson
I've released 1.4.22 version of the plugin,
you could download it from here until jenkins spots a new version.

let me know if this fixes your problem.

@michael-bryson
Copy link
Author

@BogdanLivadariu downloaded and installed 1.4.22 but still getting the same error I'm afraid

@BogdanLivadariu
Copy link
Contributor

@michael-bryson have you restarted jenkins after updating the plugin ?
if yes, can you uninstall the plugin , and reinstall it again ?

@michael-bryson
Copy link
Author

@BogdanLivadariu Yes I restarted Jenkins after the install. I have tried an uninstall, reinstall and Jenkins restart again but same error is returned.

@BogdanLivadariu
Copy link
Contributor

@michael-bryson what version of jenkins to you use ?

@michael-bryson
Copy link
Author

@BogdanLivadariu Jenkins 1.636

@BogdanLivadariu
Copy link
Contributor

did some investigations, seems like a while back another user reported same problem
seems like 1.636 has some problems around classloader for plugins, at that time I recommended to downgrade jenkins to 1.625 , but I', pretty sure the problem might been fixed in a newer version

here is what that user reported

Hi, I've recently installed latest version of plugin and it fails to publish cucumber report. I've Jenkins ver. 1.636 and distributed job. Master is installed on a Linux machine and Slave is a Mac machine. Error is next

ERROR: Step ‘Publish cucumber reports generated with handlebars’ aborted due to exception: 
java.lang.ClassCircularityError: org/antlr/v4/runtime/atn/PredictionContext
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1139)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:801)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1310)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jenkinsci.bytecode.ClassWriter.loadClass(ClassWriter.java:97)
    at org.jenkinsci.bytecode.ClassWriter.getCommonSuperClass(ClassWriter.java:64)
    at org.kohsuke.asm5.ClassWriter.getMergedType(ClassWriter.java:1654)
    at org.kohsuke.asm5.Frame.merge(Frame.java:1426)
    at org.kohsuke.asm5.Frame.merge(Frame.java:1325)
    at org.kohsuke.asm5.MethodWriter.visitMaxs(MethodWriter.java:1475)
    at org.kohsuke.asm5.tree.MethodNode.accept(MethodNode.java:833)
    at org.kohsuke.asm5.commons.JSRInlinerAdapter.visitEnd(JSRInlinerAdapter.java:187)
    at org.jenkinsci.bytecode.Transformer$1$1.visitEnd(Transformer.java:107)
    at org.kohsuke.asm5.MethodVisitor.visitEnd(MethodVisitor.java:877)
    at org.kohsuke.asm5.ClassReader.readMethod(ClassReader.java:1021)
    at org.kohsuke.asm5.ClassReader.accept(ClassReader.java:693)
    at org.kohsuke.asm5.ClassReader.accept(ClassReader.java:506)
    at org.jenkinsci.bytecode.Transformer.transform(Transformer.java:113)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:800)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1310)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.github.jknack.handlebars.internal.HbsLexer.<clinit>(HbsLexer.java:17)
    at com.github.jknack.handlebars.internal.HbsParserFactory.newLexer(HbsParserFactory.java:141)
    at com.github.jknack.handlebars.internal.HbsParserFactory.access$200(HbsParserFactory.java:47)
    at com.github.jknack.handlebars.internal.HbsParserFactory$1.parse(HbsParserFactory.java:74)
    at com.github.jknack.handlebars.cache.NullTemplateCache.get(NullTemplateCache.java:49)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:442)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:385)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:371)
    at com.github.bogdanlivadariu.reporting.cucumber.builder.CucumberReportBuilder.writeFeatureSummaryReports(CucumberReportBuilder.java:58)
    at com.github.bogdanlivadariu.reporting.cucumber.builder.CucumberReportBuilder.writeReportsOnDisk(CucumberReportBuilder.java:172)
    at com.github.bogdanlivadariu.jenkins.reporting.cucumber.CucumberTestReportPublisher.perform(CucumberTestReportPublisher.java:125)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    .....

The most strange thing is that when I debug plugin locally on slave machine plugin works fine. What can be the reason of such failure? Thank you!

here is what I've said:

Hi @ivan-fedorov try downgrading jenkins
Latest version seems to have problems with the classloade for plugins
Try a lts version
Bogdan Livadariu @BogdanLivadariu Nov 07 2015 00:04
1.625
Ivan Fedorov @ivan-fedorov Nov 09 2015 10:55
Hi @BogdanLivadariu You are completely right! It was a jenkins problem and downgrading solved it. Thank you very much!

@michael-bryson
Copy link
Author

Hi, our Jenkins has been upgraded and I no longer get this error. However when I point to the testng-results.xml file and the build runs I do not get the nicely formatted reports, I only get the attached with a lot of errors in the console when using Chrome.
testng_report

If I use IE I only get a simple table with no charts, is there something missing from my results file?

@BogdanLivadariu
Copy link
Contributor

@michael-bryson what is the version of jenkins ?

this error appears because of jenkins security policy

I have an opened issue for that, along with some workarounds : #12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants