[JIRA] (JENKINS-61859) Fails to load with "Illegal use of nonvirtual function call" error

4 views
Skip to first unread message

jenkinsci@david.leatherman.fm (JIRA)

unread,
Apr 9, 2020, 2:27:03 PM4/9/20
to jenkinsc...@googlegroups.com
David Leatherman created an issue
 
Jenkins / Bug JENKINS-61859
Fails to load with "Illegal use of nonvirtual function call" error
Issue Type: Bug Bug
Assignee: sue445
Components: yaml-axis-plugin
Created: 2020-04-09 18:26
Environment: Jenkins 2.230
yaml-axis-plugin 0.2.1
Priority: Major Major
Reporter: David Leatherman

The yaml-axis-plugin fails to load with the error "Illegal use of nonvirtual function call".  Jenkins does start but all builds using the yaml matrix will fail.

 

I've pasted the error below but it also appears here: 

https://ci.jenkins.io/job/Plugins/job/yaml-axis-plugin/job/SECURITY-1825/1/console

 

1) Error injecting constructor, java.lang.VerifyError: (class: org/jenkinsci/plugins/yamlaxis/YamlAxis, method: super$1$spliterator signature: ()Ljava/util/Spliterator;) Illegal use of nonvirtual function call
  at org.jenkinsci.plugins.yamlaxis.YamlAxis$DescriptorImpl.<init>(YamlAxis.groovy:75)1 error
        at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:52)
        at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
        at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:440)
        at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
        at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
        at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
        at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
        at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:402)
        at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393)
        at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:344)
        at hudson.ExtensionList.load(ExtensionList.java:381)
        at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
        at hudson.ExtensionList.getComponents(ExtensionList.java:183)
        at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:213)
        at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
        at hudson.ExtensionList.iterator(ExtensionList.java:172)
        at org.jenkinsci.plugins.xunit.AliasInitializer.init(AliasInitializer.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
        at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
        at jenkins.model.Jenkins$5.runTask(Jenkins.java:1133)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.VerifyError: (class: org/jenkinsci/plugins/yamlaxis/YamlAxis, method: super$1$spliterator signature: ()Ljava/util/Spliterator;) Illegal use of nonvirtual function call

        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at hudson.model.Descriptor.<init>(Descriptor.java:296)
        at hudson.matrix.AxisDescriptor.<init>(AxisDescriptor.java:44)
        at org.jenkinsci.plugins.yamlaxis.YamlAxis$DescriptorImpl.<init>(YamlAxis.groovy)
        at org.jenkinsci.plugins.yamlaxis.YamlAxis$DescriptorImpl$$FastClassByGuice$$9a80bc2f.newInstance(<generated>)
        at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
        at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
        at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
        at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32)
        at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:89)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
        at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:577)
        at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
        at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
        at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87)
        at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
        at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
        at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)

 {{}}

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

jonah.bull@elastic.co (JIRA)

unread,
Apr 9, 2020, 3:47:03 PM4/9/20
to jenkinsc...@googlegroups.com
Jonah Bull commented on Bug JENKINS-61859
 
Re: Fails to load with "Illegal use of nonvirtual function call" error

The root cause seems to be that the plugin is configured with groovy 1.8.9 as a runtime dependency, but the version of groovy shipped with Jenkins (as of the current release) is 2.4.12:

dependencies {
     // NOTE: groovy version included in Jenkins is 1.8.9
     runtime 'org.codehaus.groovy:groovy-all:1.8.9'

After updating both the groovy dependency (I added both runtime and compile entries, not sure they're both necessary) and the spock dependency I was able to build a version of the plugin off of master that works. Diff of the changes:

diff --git a/build.gradle b/build.gradle
index 66231ac..789574b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -46,10 +46,11 @@ repositories {
 
 dependencies {
     // NOTE: groovy version included in Jenkins is 1.8.9
-    runtime 'org.codehaus.groovy:groovy-all:1.8.9'
+    runtime 'org.codehaus.groovy:groovy-all:2.4.12'
+    compile 'org.codehaus.groovy:groovy-all:2.4.12'
     compile 'org.yaml:snakeyaml:1.26'
 
-    testCompile 'org.spockframework:spock-core:0.7-groovy-1.8'
+    testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
 
     jenkinsPlugins 'org.jenkins-ci.plugins:matrix-project:1.6@jar'
 }

 

Reply all
Reply to author
Forward
0 new messages