Here's a failing test that reproduces the issue
package com.example.demo;
import org.junit.jupiter.api.Test;
import tools.jackson.core.JsonGenerator;
import tools.jackson.databind.json.JsonMapper;
import java.io.StringWriter;
import java.util.UUID;
public class JacksonTests {
@Test
void jacksonUUIDSerialization() {
JsonMapper mapper = new JsonMapper();
JsonGenerator generator = mapper.createGenerator(new StringWriter());
generator.writeStartObject();
generator.writePOJOProperty("id", UUID.randomUUID());
generator.writeEndObject();
}
}
The failure stacktrace is below
Cannot invoke "tools.jackson.core.util.JacksonFeatureSet.isEnabled(tools.jackson.core.util.JacksonFeature)" because "this._writeCapabilities" is null
java.lang.NullPointerException: Cannot invoke "tools.jackson.core.util.JacksonFeatureSet.isEnabled(tools.jackson.core.util.JacksonFeature)" because "this._writeCapabilities" is null
at tools.jackson.databind.SerializationContext.isEnabled(SerializationContext.java:495)
at tools.jackson.databind.ser.jdk.UUIDSerializer._writeAsBinary(UUIDSerializer.java:116)
at tools.jackson.databind.ser.jdk.UUIDSerializer.serialize(UUIDSerializer.java:78)
at tools.jackson.databind.ser.jdk.UUIDSerializer.serialize(UUIDSerializer.java:23)
at tools.jackson.databind.SerializationContext.writeValue(SerializationContext.java:308)
at tools.jackson.core.base.GeneratorBase.writePOJO(GeneratorBase.java:298)
at tools.jackson.core.JsonGenerator.writePOJOProperty(JsonGenerator.java:1850)
at com.example.demo.JacksonTests.jacksonUUIDSerialization(JacksonTests.java:17)
Comment From: cowtowncoder
Thank you for reporting this, @donalmurtagh.
I think this belongs to jackson-databind
(altho exception from jackson-core), will transfer.
Comment From: cowtowncoder
Note: could be related to earlier issue #5225 (fixed via #5226)
Comment From: cowtowncoder
Fixed via #5324