Releases: palantir/conjure-java-runtime
Release list
8.38.0
💡 Improvements
-
Adds a JacksonWarmup type that serializes a representative set of payload shapes through fresh server and dialogue/client ObjectMappers (constructed via the same conjure-java factories used at runtime) so the JIT settles on the bimorphic BeanPropertyWriter.serializeAsField branch (typed vs untyped serializer) with full type-profile coverage before customer traffic perturbs it.
This works around OpenJDK C2 JIT deoptimization storm where uncommon_trap isnonnull triggers continuous deoptimization as seen in https://bugs.openjdk.org/browse/JDK-8330258 &
https://bugs.openjdk.org/browse/JDK-8374307 . The repeated deoptimization can be observed byjdk.DeoptimizationJFR events atcom.fasterxml.jackson.databind.ser.BeanPropertyWriterif (_typeSerializer == null)site, and then re-enters unstable_if deopt thrash on the JSON serialization path when a perturbing workload arrives.The warmup payloads interleave monomorphic fields (concrete types) with polymorphic fields (sealed interface +
@JsonTypeInfo) in the same object so each iteration exercises both branches, letting C2 record a bimorphic profile during the warmup pass.Warmup failures are caught and logged rather than aborting as a degraded JIT profile is preferable to refusing to serve traffic. (#3512)
Full Changelog: 8.37.0...8.38.0
8.37.0
No documented user-facing changes
Full Changelog: 8.36.0...8.37.0
8.36.0
No documented user-facing changes
Full Changelog: 8.35.0...8.36.0
8.36.0-rc1
No documented user-facing changes
Full Changelog: 8.35.0...8.36.0-rc1
8.35.0
No documented user-facing changes
Full Changelog: 8.34.0...8.35.0
8.34.0
No documented user-facing changes
Full Changelog: 8.33.0...8.34.0
8.33.0
⏸️ Deprecations
- Remove unused deprecated classes in
conjure-java-jaxrs-client. (#3428)