[JIRA] (JENKINS-36434) Jigomerge, Jenkins 2, GroovyClassLoader.parseClass Fatal error

2 views
Skip to first unread message

guillaume.menard@soprasteria.com (JIRA)

unread,
Jul 5, 2016, 6:16:01 AM7/5/16
to jenkinsc...@googlegroups.com
Guillaume Ménard created an issue
 
Jenkins / Bug JENKINS-36434
Jigomerge, Jenkins 2, GroovyClassLoader.parseClass Fatal error
Issue Type: Bug Bug
Assignee: Unassigned
Components: jigomerge-plugin
Created: 2016/Jul/05 10:15 AM
Environment: Jenkins ver. 2.8
jigomerge 0.8
Labels: plugin 2.0
Priority: Major Major
Reporter: Guillaume Ménard

Running a simple jigomerge causes this error:

FATAL: groovy.lang.GroovyClassLoader.parseClass(Ljava/io/InputStream;)Ljava/lang/Class;
java.lang.NoSuchMethodError: groovy.lang.GroovyClassLoader.parseClass(Ljava/io/InputStream;)Ljava/lang/Class;
	at hudson.plugins.jigomerge.JigomergeBuilder.perform(JigomergeBuilder.java:93)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
	at hudson.model.Build$BuildExecution.build(Build.java:205)
	at hudson.model.Build$BuildExecution.doRun(Build.java:162)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
	at hudson.model.Run.execute(Run.java:1741)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:98)
	at hudson.model.Executor.run(Executor.java:410)

This is is due to a modification in groovy where the method parseClass(InputStream in) has been removed: the easiest alternative would be to use

parseClass(String text)

or a deprecated function

parseClass(InputStream in, String fileName)

This modification has to be done in JigomergeBuilder.java#L93./JigomergeBuilder.java#L93].

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

guillaume.menard@soprasteria.com (JIRA)

unread,
Jul 5, 2016, 6:16:01 AM7/5/16
to jenkinsc...@googlegroups.com
Guillaume Ménard updated an issue
Change By: Guillaume Ménard
Running a simple jigomerge causes this error:

{code:java}

FATAL: groovy.lang.GroovyClassLoader.parseClass(Ljava/io/InputStream;)Ljava/lang/Class;
java.lang.NoSuchMethodError: groovy.lang.GroovyClassLoader.parseClass(Ljava/io/InputStream;)Ljava/lang/Class;
at hudson.plugins.jigomerge.JigomergeBuilder.perform(JigomergeBuilder.java:93)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
{code}


This is is due to a modification in groovy where [the method parseClass(InputStream in) has been removed|http://docs.groovy-lang.org/latest/html/api/groovy/lang/GroovyClassLoader.html#parseClass(java.io.InputStream,%20java.lang.String)]: the easiest alternative would be to use
{code:java}
parseClass(String text)
{code}
or a deprecated function
{code:java}
parseClass(InputStream in, String fileName)
{code}
This modification has to be done in [JigomergeBuilder.java#L93|https://github.com/jenkinsci/jigomerge-plugin/blob/master/src/main/java/hudson/plugins/jigomerge].
/JigomergeBuilder.java#L93].

guillaume.menard@soprasteria.com (JIRA)

unread,
Jul 5, 2016, 6:46:03 AM7/5/16
to jenkinsc...@googlegroups.com
This modification has to be done in [JigomergeBuilder.java#L93|https://github.com/jenkinsci/jigomerge-plugin/blob/master/src/main/java/hudson/plugins/jigomerge /JigomergeBuilder.java#L93 ].

EDIT: We maybe could rather change [JigomergeBuilder.java#L90|https://github.com/jenkinsci/jigomerge-plugin/blob/master/src/main/java/hudson/plugins/jigomerge/JigomergeBuilder.java#L90]:

{code:java}
InputStream scriptResource = this.getClass().getResourceAsStream(
     "/scripts/jigomerge-" + JIGOMERGE_VERSION + ".groovy");
{code}
to
{code:java}
File scriptResource = new File ("/scripts/jigomerge-" + JIGOMERGE_VERSION + ".groovy");
{code}.

guillaume.menard@soprasteria.com (JIRA)

unread,
Jul 28, 2016, 2:18:01 AM7/28/16
to jenkinsc...@googlegroups.com
Guillaume Ménard resolved as Fixed
 

Corrected in further version (v0.9+) using

parseClass(InputStream in, String fileName)

.

Change By: Guillaume Ménard
Status: Open Resolved
Assignee: Guillaume Ménard
Resolution: Fixed
Reply all
Reply to author
Forward
0 new messages