jenkinsci / jenkinsci/java-client-api
build.details() throws MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token
- Dominant language
- Java
- Stars
- 913
- Forks
- 466
- PR merge metrics
- No merged PRs in 30d
Description
Java-client-api version : 0.4.0-SNAPSHOT
Jenkins Server Version : 2.164.2
BuildWithDetails build = trigger.triggerJobAndWaitUntilFinished(strJobName);
throws following Exception
`Exception in thread "main" com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token
at [Source: (byte[])"{"_class":"org.jenkinsci.plugins.workflow.job.WorkflowRun","actions":[{"_class":"hudson.model.CauseAction","causes":[{"_class":"hudson.model.Cause$UserIdCause","shortDescription":"Started by user demouser","userId":"demouser","userName":"demouser"}]},{},{},{},{},{"_class":"org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"},{},{"_class":"org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"},{},{},{}],"artifacts":[],"building":true,"description""[truncated 616 bytes]; line: 1, column: 81] (through reference chain: com.offbytwo.jenkins.model.BuildWithDetails["actions"]->java.util.ArrayList[0]->java.util.LinkedHashMap["_class"])
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1343)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1139)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1093)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:332)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:265)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:527)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:364)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:136)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3091)
at com.offbytwo.jenkins.client.JenkinsHttpClient.objectFromResponse(JenkinsHttpClient.java:501)
at com.offbytwo.jenkins.client.JenkinsHttpClient.get(JenkinsHttpClient.java:152)
at com.offbytwo.jenkins.model.Build.details(Build.java:109)
at com.offbytwo.jenkins.JenkinsTriggerHelper.triggerJobAndWaitUntilFinished(JenkinsTriggerHelper.java:188)
at com.offbytwo.jenkins.JenkinsTriggerHelper.triggerJobAndWaitUntilFinished(JenkinsTriggerHelper.java:154)
at com.offbytwo.jenkins.JenkinsTriggerHelper.triggerJobAndWaitUntilFinished(JenkinsTriggerHelper.java:50)
at scb.desktop.StandardUtils.DeployUtil.doTriggerJenkinsBuildAPI(DeployUtil.java:182)
at scb.desktop.StandardUtils.DeployUtil.main(DeployUtil.java:66)`
-------------------------------------------------------------
the api/json of build URL returns following JSON
`{"_class":"org.jenkinsci.plugins.workflow.job.WorkflowRun","actions":[{"_class":"hudson.model.CauseAction","causes":[{"_class":"hudson.model.Cause$UserIdCause","shortDescription":"Started by user Pola,Santhosh","userId":"1424295","userName":"Pola,Santhosh"}]},{},{},{},{},{"_class":"org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"},{},{"_class":"org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"},{},{},{}],"artifacts":[],"building":true,"description":null,"displayName":"#2990","duration":0,"estimatedDuration":81619,"executor":{"_class":"hudson.model.OneOffExecutor"},"fullDisplayName":"demoproj » demoproj-cd » master » sit-pipeline-exceptional #2990","id":"2990","keepLog":false,"number":2990,"queueId":73469,"result":null,"timestamp":1558587765857,"url":"https://jenkinsdemohost/job/demoproj/job/demoproj-cd/job/master/job/sit-pipeline-exceptional/2990/","changeSets":[],"culprits":[],"nextBuild":null,"previousBuild":{"number":2989,"url":"https://jenkinsdemohost/job/demoproj/job/demoproj-cd/job/master/job/sit-pipeline-exceptional/2989/"}}`
-------------------------------------------
When I remove "_class" json entries manually (in "actions" json entry) and test standalone parsing, JSON is successfully parsed. Not sure on the appropriate target JSON structure for com.offbytwo.jenkins.model.BuildWithDetails (for actions attrubute).
Contributor guide
Assessment
This issue has not been assessed yet.