-
Bug
-
Resolution: Duplicate
-
Minor
-
Jenkins 2.479.3
Ubuntu 24.04.1 LTS
After updating the jackson2-api plugin, our Jenkins builds using the gitlab-branch-source plugin failed with a java.lang.NoSuchFieldError. The error indicates a missing field (SNAKE_CASE) in the com.fasterxml.jackson.databind.PropertyNamingStrategy class.
This suggests a breaking change or a version incompatibility between the latest jackson2-api plugin and the gitlab-api plugin it relies on. Downgrading the jackson2-api plugin to a previous version resolved the issue.
Steps to Reproduce:
1. Install Jenkins 2.479.3 on an Ubuntu 24.04.1 LTS server.
2. Install the following plugins:
- gitlab-branch-source: 718.v40b_5f0e67cd3
- gitlab-api: 5.6.0-100.v83f8f4b_f1129
- jersey2-api: 2.47-165.ve7809a_3e87e0
- jackson2-api: 2.20.0-411.v6ef8fdee4fe9
3. Configure a multibranch pipeline job that uses GitLab as its SCM source.
4. Run the build. The build will fail with the error message below.
The build fails with the following stack trace
MultiException stack 1 of 2 java.lang.NoSuchFieldError: Class com.fasterxml.jackson.databind.PropertyNamingStrategy does not have member field 'com.fasterxml.jackson.databind.PropertyNamingStrategy SNAKE_CASE' at PluginClassLoader for gitlab-api//org.gitlab4j.api.utils.JacksonJson.<init>(JacksonJson.java:62) at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1356) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:248) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:342) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1481) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServices(ServiceLocatorImpl.java:799) at PluginClassLoader for jersey2-api//org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllInstances(AbstractHk2InjectionManager.java:171) at PluginClassLoader for jersey2-api//org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllInstances(ImmediateHk2InjectionManager.java:30) at PluginClassLoader for jersey2-api//org.glassfish.jersey.internal.ContextResolverFactory$ContextResolversConfigurator.postInit(ContextResolverFactory.java:69) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig$State.lambda$initRuntime$2(ClientConfig.java:463) at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4305) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:463) at PluginClassLoader for jersey2-api//org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:317) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:829) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientRequest.getClientRuntime(ClientRequest.java:183) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.onBuilder(JerseyWebTarget.java:371) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:199) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:38) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:842) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:806) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:417) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:405) at PluginClassLoader for gitlab-api//org.gitlab4j.api.AbstractApi.get(AbstractApi.java:258) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:752) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:684) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.getGitlabProject(GitLabSCMSource.java:214) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:265) at PluginClassLoader for scm-api//jenkins.scm.api.SCMSource.fetch(SCMSource.java:581) at PluginClassLoader for workflow-multibranch//org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:104) at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:317) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:445) MultiException stack 2 of 2 java.lang.IllegalStateException: Unable to perform operation: create on org.gitlab4j.api.utils.JacksonJson at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:369) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131) at PluginClassLoader for jersey2-api//org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1481) at PluginClassLoader for jersey2-api//org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServices(ServiceLocatorImpl.java:799) at PluginClassLoader for jersey2-api//org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllInstances(AbstractHk2InjectionManager.java:171) at PluginClassLoader for jersey2-api//org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllInstances(ImmediateHk2InjectionManager.java:30) at PluginClassLoader for jersey2-api//org.glassfish.jersey.internal.ContextResolverFactory$ContextResolversConfigurator.postInit(ContextResolverFactory.java:69) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig$State.lambda$initRuntime$2(ClientConfig.java:463) at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4305) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:463) at PluginClassLoader for jersey2-api//org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:317) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:829) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.ClientRequest.getClientRuntime(ClientRequest.java:183) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.onBuilder(JerseyWebTarget.java:371) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:199) at PluginClassLoader for jersey2-api//org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:38) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:842) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.invocation(GitLabApiClient.java:806) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:417) at PluginClassLoader for gitlab-api//org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:405) at PluginClassLoader for gitlab-api//org.gitlab4j.api.AbstractApi.get(AbstractApi.java:258) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:752) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:684) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.getGitlabProject(GitLabSCMSource.java:214) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:265) at PluginClassLoader for scm-api//jenkins.scm.api.SCMSource.fetch(SCMSource.java:581) at PluginClassLoader for workflow-multibranch//org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:104) at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:317) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:445) Caused: org.gitlab4j.api.GitLabApiException at PluginClassLoader for gitlab-api//org.gitlab4j.api.AbstractApi.handle(AbstractApi.java:744) at PluginClassLoader for gitlab-api//org.gitlab4j.api.AbstractApi.get(AbstractApi.java:260) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:752) at PluginClassLoader for gitlab-api//org.gitlab4j.api.ProjectApi.getProject(ProjectApi.java:684) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.getGitlabProject(GitLabSCMSource.java:214) Caused: java.lang.IllegalStateException: Failed to retrieve project project/webapp at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.getGitlabProject(GitLabSCMSource.java:219) at PluginClassLoader for gitlab-branch-source//io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:265) at PluginClassLoader for scm-api//jenkins.scm.api.SCMSource.fetch(SCMSource.java:581) at PluginClassLoader for workflow-multibranch//org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:104) at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:317) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:445) [withMaven] downstreamPipelineTriggerRunListener - Failure to introspect build steps: java.io.IOException:
Workaround:
Downgrading the jackson2-api plugin to version 2.19.2-408.v18248a_324cfe resolves the issue.
- duplicates
-
JENKINS-76091 gitlab api exception after upgrade to jackson2 version 2.20.0-411.v6ef8fdee4fe9
-
- Closed
-