Git Client needs update to not extend ToolInstallation over Remoting

XMLWordPrintable

    • Type: Bug
    • Resolution: Not A Defect
    • Priority: Minor
    • Component/s: git-client-plugin
    • None
    • Environment:
      CloudBees CI 2.452.4.1
      Git Client plugin 5.0.0

      A user sees this warning regularly in their logs:

      WARNING hudson.tools.ToolInstallation#writeReplace: Serialization of GitTool extends ToolInstallation over Remoting is deprecated

      Full stack trace:

      2024-11-01 20:03:54.116+0000 [id=2139]  WARNING hudson.tools.ToolInstallation#writeReplace: Serialization of GitTool extends ToolInstallation over Remoting is deprecated
      java.lang.Throwable
              at hudson.tools.ToolInstallation.writeReplace(ToolInstallation.java:241)
              at jdk.internal.reflect.GeneratedMethodAccessor168.invoke(Unknown Source)
              at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.base/java.lang.reflect.Method.invoke(Method.java:569)
              at com.thoughtworks.xstream.core.util.SerializationMembers.callWriteReplace(SerializationMembers.java:101)
              at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:154)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:44)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:87)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeBareItem(AbstractCollectionConverter.java:94)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:66)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeCompleteItem(AbstractCollectionConverter.java:81)
              at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:83)
              at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:283)
              at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:270)
              at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:241)
              at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:174)
              at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:226)
              at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:163)
              at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:59)
              at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:44)
              at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:83)
              at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
              at com.thoughtworks.xstream.XStream.marshal(XStream.java:1303)
              at com.thoughtworks.xstream.XStream.marshal(XStream.java:1292)
              at com.thoughtworks.xstream.XStream.toXML(XStream.java:1265)
              at hudson.XmlFile.write(XmlFile.java:216)
              at hudson.model.Descriptor.save(Descriptor.java:915)
              at hudson.BulkChange.commit(BulkChange.java:98)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:278)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:360)
              at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:283)
              at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$configureWith$7(ConfigurationAsCode.java:823)
              at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:773)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:823)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:695)
              at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:352)
              at io.jenkins.plugins.casc.ConfigurationAsCode$configure$0.call(Unknown Source)
              at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
              at hot-reload-casc_script.run(hot-reload-casc.script.groovy:2)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:574)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:612)
              at groovy.lang.GroovyShell.evaluate(GroovyShell.java:593)
              at com.cloudbees.opscenter.server.clusterops.steps.MasterGroovyClusterOpStep$Script.doCall(MasterGroovyClusterOpStep.java:139)
              at com.cloudbees.opscenter.server.clusterops.steps.MasterGroovyClusterOpStep$Script.doCall(MasterGroovyClusterOpStep.java:87)
              at com.cloudbees.opscenter.server.clusterops.AuthenticatedOperationsCenterToClientMasterCallable.call(AuthenticatedOperationsCenterToClientMasterCallable.java:31)
              at hudson.remoting.UserRequest.perform(UserRequest.java:211)
              at hudson.remoting.UserRequest.perform(UserRequest.java:54)
              at hudson.remoting.Request$2.run(Request.java:377)
              at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
              at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18)
              at hudson.remoting.CallableDecoratorList.lambda$applyDecorator$0(CallableDecoratorList.java:19)
              at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
              at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:80)
              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)

      I am guessing that this has not come up before because it is not that common for people to use Tool Installation to manage their git client installs, and also the warning is probably easy to overlook in the Jenkins logs. I just wanted to flag this for refactoring if possible.

            Assignee:
            Unassigned
            Reporter:
            Owen Mehegan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: