jenkinsci / jenkinsci/java-client-api
Bug: build.details() throws MismatchedInputException: Cannot deserialize instance of `com.offbytwo.jenkins.model.BuildChangeSet` out of START_ARRAY token
- Dominant language
- Java
- Stars
- 913
- Forks
- 466
- PR merge metrics
- No merged PRs in 30d
Description
I'm using jenkins-client 0.3.8 and build.details() fails for the Jenkins server v1.652. The reason is: the JSON that is returned contains:
`"changeSet": []`
but the BuildWithDetails class expects not an array/list but an object:
`private BuildChangeSet changeSet;`
I tested build.details() successfully with Jenkins server 2.127 & 2.121.2. The reason is that the JSON looks different (i.e. it contains an object as expected in BuildWithDetails class):
```
"changeSet": {
"_class": "hudson.scm.EmptyChangeLogSet",
"items": [],
"kind": null
}
```
I know there are similar issues (#177, #143, #141, #138) but they are all closed although the problem seems to be still around ... IMHO there needs to be a different handling of the serialization depending on the server version.
Contributor guide
Research direction
Inspect BuildWithDetails and its changeSet field, along with BuildChangeSet, then reproduce build.details() against Jenkins 1.652 and compare the returned JSON with the object form from Jenkins 2.127 or 2.121.2. Done means the client handles both the empty-array and object representations without throwing MismatchedInputException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100