Skip to content

Fix #800: Upgrade ion-java to 1.12.1 (from 1.11.11) - #801

Merged
cowtowncoder merged 2 commits into
3.1from
tatu-claude/3.1/800-ion-java-1.12.1
Sep 19, 2026
Merged

cowtowncoder merged 2 commits into
3.1from
tatu-claude/3.1/800-ion-java-1.12.1

Conversation

@cowtowncoder

Copy link
Copy Markdown
Member

Fixes #800.

Bumps ion/pom.xml from ion-java 1.11.11 to 1.12.1.

Why

1.11.11 is the one release carrying a binary-write corruption bug, fixed in 1.12.0 by amazon-ion/ion-java#1150: stale PatchPoints in IonRawBinaryWriter get applied on a subsequent finish(), producing invalid Ion binary. It triggers on binary writers with container length preallocation (1 byte by default) when the writer is flushed or finished and then written to again.

Jackson's own generator paths do not appear to trigger it — IonGenerator.flush() flushes the destination rather than the IonWriter, and nothing calls finish() — so the exposure is to callers passing their own IonWriter to IonFactory.createGenerator(ObjectWriteContext, IonWriter). Still not a version to stay pinned to.

Also picked up: incremental reader buffer growth instead of allocating the full declared length up front, text read optimizations, and GZIP auto-decompression changes (new IonReaderBuilder.withGzipDecompressionEnabled opt-out, plus removal of a second auto-decompression layer).

Compatibility

1.12.1 is still Java 8 bytecode (major version: 52, OSGi Require-Capability: JavaSE 1.8), so this is not a baseline change — it would be viable on the 2.x branches too, which pin the same 1.11.11.

./mvnw verify in the ion module: 265 tests, 0 failures.

🤖 Generated with Claude Code

1.11.11 carries a binary-write corruption bug (amazon-ion/ion-java#1150):
stale `PatchPoint`s in `IonRawBinaryWriter` produce invalid Ion binary when
a writer is flushed or finished and then written to again. Fixed in 1.12.0.

1.12.1 is still Java 8 bytecode, so no baseline change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🧪 Code Coverage Report

Coverage Type Coverage Change
📝 Instructions 77.16% = 0.00%
🔀 Branches 68.36% = 0.00%

@cowtowncoder
cowtowncoder merged commit d81c598 into 3.1 Sep 19, 2026
3 checks passed
@cowtowncoder
cowtowncoder deleted the tatu-claude/3.1/800-ion-java-1.12.1 branch September 19, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant