[JENKINS-72486] Adapt to Jackson 2.16

        Lee Leibke added a comment -

        After upgrading Jenkins to 2.462.2 and using Kubernetes plugin 4029.v5712230ccb_f8 I started seeing this in the System Log which seems related:

        Jan 21, 2024 3:38:59 PM WARNING jenkins.util.Listeners lambda$notify$0null
        java.lang.IncompatibleClassChangeError: com.fasterxml.jackson.databind.PropertyNamingStrategy and com.fasterxml.jackson.databind.PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy disagree on InnerClasses attribute
        	at java.base/java.lang.Class.getDeclaringClass0(Native Method)
        	at java.base/java.lang.Class.isTopLevelClass(Class.java:1805)
        	at java.base/java.lang.Class.getSimpleBinaryName(Class.java:1790)
        	at java.base/java.lang.Class.getSimpleName0(Class.java:1662)
        	at java.base/java.lang.Class.getSimpleName(Class.java:1653)
        	at com.fasterxml.jackson.databind.PropertyNamingStrategy$PropertyNamingStrategyBase.<init>(PropertyNamingStrategy.java:205)
        	at com.fasterxml.jackson.databind.PropertyNamingStrategy$PropertyNamingStrategyBase.<init>(PropertyNamingStrategy.java:199)
        	at com.fasterxml.jackson.databind.PropertyNamingStrategy$SnakeCaseStrategy.<init>(PropertyNamingStrategy.java:296)
        	at com.fasterxml.jackson.databind.PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy.<init>(PropertyNamingStrategy.java:422)
        	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        	at com.fasterxml.jackson.databind.util.ClassUtil.createInstance(ClassUtil.java:564)
        	at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._findNamingStrategy(POJOPropertiesCollector.java:1453)
        	at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:478)
        	at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:286)
        	at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:258)
        	at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:393)
        	at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:225)
        	at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:174)
        	at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1525)
        	at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1473)
        	at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:578)
        	at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:856)
        	at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:330)
        	at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4793)
        	at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:4038)
        	at io.fabric8.kubernetes.pipeline.devops.elasticsearch.BuildListener.onCompleted(BuildListener.java:54)
        	at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207)
        	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
        	at jenkins.util.Listeners.notify(Listeners.java:67)
        	at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205)
        	at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645)
        	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068)
        	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1559)
        	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512)
        	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41)
        	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
        	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
        	at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
        	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        	at java.base/java.lang.Thread.run(Thread.java:840)
        
         

         

        Lee Leibke added a comment - After upgrading Jenkins to 2.462.2 and using Kubernetes plugin 4029.v5712230ccb_f8 I started seeing this in the System Log which seems related: Jan 21, 2024 3:38:59 PM WARNING jenkins.util.Listeners lambda$notify$0null java.lang.IncompatibleClassChangeError: com.fasterxml.jackson.databind.PropertyNamingStrategy and com.fasterxml.jackson.databind.PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy disagree on InnerClasses attribute at java.base/java.lang. Class .getDeclaringClass0(Native Method) at java.base/java.lang. Class .isTopLevelClass( Class .java:1805) at java.base/java.lang. Class .getSimpleBinaryName( Class .java:1790) at java.base/java.lang. Class .getSimpleName0( Class .java:1662) at java.base/java.lang. Class .getSimpleName( Class .java:1653) at com.fasterxml.jackson.databind.PropertyNamingStrategy$PropertyNamingStrategyBase.<init>(PropertyNamingStrategy.java:205) at com.fasterxml.jackson.databind.PropertyNamingStrategy$PropertyNamingStrategyBase.<init>(PropertyNamingStrategy.java:199) at com.fasterxml.jackson.databind.PropertyNamingStrategy$SnakeCaseStrategy.<init>(PropertyNamingStrategy.java:296) at com.fasterxml.jackson.databind.PropertyNamingStrategy$LowerCaseWithUnderscoresStrategy.<init>(PropertyNamingStrategy.java:422) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at com.fasterxml.jackson.databind.util.ClassUtil.createInstance(ClassUtil.java:564) at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._findNamingStrategy(POJOPropertiesCollector.java:1453) at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:478) at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:286) at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:258) at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:393) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:225) at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:174) at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1525) at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1473) at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:578) at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:856) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:330) at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4793) at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:4038) at io.fabric8.kubernetes.pipeline.devops.elasticsearch.BuildListener.onCompleted(BuildListener.java:54) at hudson.model.listeners.RunListener.lambda$fireCompleted$0(RunListener.java:207) at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59) at jenkins.util.Listeners.notify(Listeners.java:67) at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:205) at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:645) at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1068) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1559) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:512) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:41) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68) at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang. Thread .run( Thread .java:840)  

        Alex added a comment -

        Same issue here. Its some related to send events to ES so I can bypass for now but it looks awesome to adapt.

        Alex added a comment - Same issue here. Its some related to send events to ES so I can bypass for now but it looks awesome to adapt.

        Anirudh added a comment -

        if PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy is deprecated from jackson , can we write a custom class that does the same function or we've to look for an alternative in jackson only?

         

        Anirudh added a comment - if PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy is deprecated from jackson , can we write a custom class that does the same function or we've to look for an alternative in jackson only?  

        Basil Crow added a comment -

        LowerCaseWithUnderscoresStrategy should be replaced with SnakeCaseStrategy.

        Basil Crow added a comment - LowerCaseWithUnderscoresStrategy should be replaced with SnakeCaseStrategy .

        Anirudh added a comment -

        Yes i understand that but SnakeCaseStrategy.is also deprecated as of now by jackson in PropertyNamingStrategy class there's another function LowerCasewithSeparator which i think can be used.
        I'll also would like if i could've some help in setting up this repo in my local setup. If there's a giude or readme available

        Anirudh added a comment - Yes i understand that but SnakeCaseStrategy .is also deprecated as of now by jackson in PropertyNamingStrategy class there's another function LowerCasewithSeparator which i think can be used. I'll also would like if i could've some help in setting up this repo in my local setup. If there's a giude or readme available

        Basil Crow added a comment - See https://github.com/FasterXML/jackson-databind/blob/3d3972381ece81d464caba19020f732421afd9b9/src/main/java/com/fasterxml/jackson/databind/PropertyNamingStrategy.java#L63-L70 .

        Anirudh added a comment -

        @deprecated Since 2.12 deprecated. Use {@link PropertyNamingStrategies#SNAKE_CASE} instead
        so we've to use PropertyNamingStrategies.SnakeCaseStrategy?

        Anirudh added a comment - @deprecated Since 2.12 deprecated. Use {@link PropertyNamingStrategies#SNAKE_CASE} instead so we've to use PropertyNamingStrategies.SnakeCaseStrategy?

        Debayan added a comment -

        Can I work on this issue?

        Debayan added a comment - Can I work on this issue?

        Debayan added a comment -

        It seems that the last commit to this plugin was 5 years ago and it has not been updated since.

        Debayan added a comment - It seems that the last commit to this plugin was 5 years ago and it has not been updated since.

        Alex added a comment -

        I think its ok to fork/branch the repo, develop/test in a local Jenkins and then submit a PR, the contributors are still active on Github in other projects

        Alex added a comment - I think its ok to fork/branch the repo, develop/test in a local Jenkins and then submit a PR, the contributors are still active on Github in other projects

        Vladimir added a comment -

        any updates about this issue ?

        Vladimir added a comment - any updates about this issue ?

        Basil Crow added a comment -

        leoqa alex_lopes debghosh666 vpikovski Are any of you still using one of these plugins?

        • kubernetes-pipeline-aggregator (suspended in 2019 in SECURITY-920)
        • kubernetes-pipeline-arquillian-steps (suspended in 2019 in SECURITY-920)
        • kubernetes-pipeline-devops-steps
        • kubernetes-pipeline-steps (suspended in 2019 in SECURITY-920)

        All but kubernetes-pipeline-devops-steps were suspended in 2019. If you are still using kubernetes-pipeline-devops-steps, could you tell me whether you are using it for its "Apply Kubernetes/Openshift configuration" feature, its Elastic Search integration feature, or both?

        Basil Crow added a comment - leoqa alex_lopes debghosh666 vpikovski Are any of you still using one of these plugins? kubernetes-pipeline-aggregator (suspended in 2019 in SECURITY-920) kubernetes-pipeline-arquillian-steps (suspended in 2019 in SECURITY-920) kubernetes-pipeline-devops-steps kubernetes-pipeline-steps (suspended in 2019 in SECURITY-920) All but kubernetes-pipeline-devops-steps were suspended in 2019. If you are still using kubernetes-pipeline-devops-steps , could you tell me whether you are using it for its "Apply Kubernetes/Openshift configuration" feature, its Elastic Search integration feature, or both?

          iocanel Ioannis Canellos
          basil Basil Crow
          Votes:
          1 Vote for this issue
          Watchers:
          6 Start watching this issue

            Created:
            Updated: