Skip to content

Fix NPE where code can look for an objectId when no _objectIdReader is set - #5686

Merged
cowtowncoder merged 3 commits into
FasterXML:3.xfrom
pjfanning:npe-objectReader
Feb 14, 2026
Merged

Fix NPE where code can look for an objectId when no _objectIdReader is set#5686
cowtowncoder merged 3 commits into
FasterXML:3.xfrom
pjfanning:npe-objectReader

Conversation

@pjfanning

Copy link
Copy Markdown
Member

see https://oss-fuzz.com/testcase-detail/4985209792823296

== Java Exception: java.lang.NullPointerException: Cannot invoke "tools.jackson.databind.deser.impl.ObjectIdReader.getDeserializer()" because "this._objectIdReader" is null
--
  | at tools.jackson.databind.deser.bean.BeanDeserializerBase._handleTypedObjectId(BeanDeserializerBase.java:1402)
  | at tools.jackson.databind.deser.bean.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:618)
  | at tools.jackson.databind.deser.bean.BeanDeserializer.deserialize(BeanDeserializer.java:200)
  | at tools.jackson.databind.deser.DeserializationContextExt.readRootValue(DeserializationContextExt.java:266)
  | at tools.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2639)
  | at tools.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1544)

I'm not sure how to produce a test case for this but the failing OSS Fuzz scenario somehow leads to BeanDeserializer.deserializeFromObject calling _handleTypedObjectId but that latter method requires a non-null _objectIdReader.

@github-actions

Copy link
Copy Markdown

🧪 Code Coverage Report

Metric Coverage Change
Instructions coverage 81.02% 📈 +0.000%
Branches branches 74.19% 📈 +0.000%

Coverage data generated from JaCoCo test results

@cowtowncoder

Copy link
Copy Markdown
Member

@pjfanning I think it can only be triggered by YAML since it has native Object Ids (Anchors) unlike JSON.
But just because YAML content has anchors does not guarantee POJO has @JsonIdentityInfo.

So I think fix is correct, thank you for submitting it. Will merge.

@cowtowncoder cowtowncoder changed the title fix NPE where code can look for an objectId when no _objectIdReader is set Fix NPE where code can look for an objectId when no _objectIdReader is set Feb 14, 2026
@github-actions

Copy link
Copy Markdown

🧪 Code Coverage Report

Metric Coverage Change
Instructions coverage 81.03% 📈 +0.000%
Branches branches 74.20% 📈 +0.000%

Coverage data generated from JaCoCo test results

@cowtowncoder
cowtowncoder merged commit 9a817b0 into FasterXML:3.x Feb 14, 2026
6 checks passed
@github-actions

Copy link
Copy Markdown

🧪 Code Coverage Report

Metric Coverage Change
Instructions coverage 81.03% 📈 +0.000%
Branches branches 74.20% 📈 +0.000%

Coverage data generated from JaCoCo test results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants