Skip to content

Releases: amazon-ion/ion-java

v1.11.2

09 Feb 00:40
d10b4fd
Compare
Choose a tag to compare

What's Changed

  • Removes assertions in IonReaderSystemTextX.stringValue(). (#703)
  • Adds a _Private_IonConstants.ARRAY_MAXIMUM_SIZE. (#708)
  • Fixes a bug that allowed NegativeArraySizeException to be thrown from IonReader.newBytes(). (#705)
  • Allows the text reader to fail cleanly when the user attempts to recover after catching IonException, but recovery is not possible. (#709)
  • Fixes a bug that caused the binary reader not to fail cleanly when parsing incomplete containers in certain cases. (#710)

Note

This release does not include all commits present on the master branch at the time of release. The following commits are excluded from 1.11.2 and will be included in a future release:

  • Implements patch list as a single contiguous array of reusable PatchPoint instances. (#521)
  • Remove the repeated logic of the method that overwrites the lower nibble of container type descriptor. (#548)
  • Adds support for writing binary Ion 1.1 null, bool, int, and float binary encoding. (#612)
  • Adds support for writing binary Ion 1.1 timestamps. (#618)
  • Adds support for writing binary Ion 1.1 decimal binary encoding. (#636)
  • Adds support for writing binary Ion 1.1 text and lob types and some annotations. (#637)
  • Enable auto-flush and configurable block size in the binary writer. (#650, #651)

Full Changelog: v1.11.1...v1.11.2

v1.11.1

18 Jan 20:31
35db3ac
Compare
Choose a tag to compare

What's Changed

  • Enables using Kotlin in Ion Java (#488)
  • Refactors to standard layout (#555)
  • Adds the ability to read a binary Ion int as a Java double, Decimal, or BigDecimal for consistency with the previous implementation. (#675)
  • Handles the case where the binary reader unexpectedly encounters an oversized value, throwing IonException with a helpful message. (#680)
  • Updates Proguard config to fix JDK 17 toolchain + Scala Build Tool compatibility issue. (#681)
  • Ensures NullPointerException is not thrown from IonReader.getIntegerSize(). (#686)
  • Adds checks for malformed data that overflows the binary reader's buffer. (#687)
  • Adds Automatic-Module-Name and OSGi bundle attributes to manifest. (#688)
  • Allows building with Java 8. (#690)
  • Handles the case where InputStream.skip provides fewer bytes than requested by the binary reader before reaching EOF. (#689)
  • Handles the case where a partially buffered nested value is skipped by the binary reader. (#692)
  • Ensures that fully-buffered containers do not cause the binary cursor to enter unchecked mode unless stepped into. (#692)
  • Sets binary reader buffers to null on close(). (#694)
  • Ensures the binary reader throws when a value method that returns a primitive type is invoked on a null value. (#693)

Note

This release does not include all commits present on the master branch at the time of release. The following commits are excluded from 1.11.1 and will be included in a future release:

  • Implements patch list as a single contiguous array of reusable PatchPoint instances. (#521)
  • Remove the repeated logic of the method that overwrites the lower nibble of container type descriptor. (#548)
  • Adds support for writing binary Ion 1.1 null, bool, int, and float binary encoding. (#612)
  • Adds support for writing binary Ion 1.1 timestamps. (#618)
  • Adds support for writing binary Ion 1.1 decimal binary encoding. (#636)
  • Adds support for writing binary Ion 1.1 text and lob types and some annotations. (#637)
  • Enable auto-flush and configurable block size in the binary writer. (#650, #651)

Full Changelog: v1.11.0...v1.11.1

v1.11.0

03 Nov 19:23
aae4100
Compare
Choose a tag to compare

What's Changed

  • Optimize ion-java-regression-detection workflow to improve the accuracy. by @linlin-s in #603
  • Swaps out the binary reader for a more performant implementation by @tgregg in #615. This change allows for binary read performance improvements of up to 40%, depending on the size and shape of the data, with no code changes required.
  • Fixes a bug that caused concurrent field access of cloned, read-only structs with more than 5 members to be non-deterministic. by @tgregg in #630

Full Changelog: v1.10.5...v1.11.0

v1.10.5

20 Sep 20:12
019a611
Compare
Choose a tag to compare

This release adds several performance improvements for scenarios working with the ion-java DOM (IonValue etc.) and unifies IonValue.toString() representations with the IonTextWriter output

Fixes

Performance Improvements

  • IonValue.hashCode: up to 57% faster
  • IonValue.clone: up to 41% faster
  • IonStruct.cloneAndRemove: up to 76% faster
  • IonStruct.cloneAndRetain: up to 43% faster
  • IonLoader.load: up to 17% faster
  • IonValue.writeTo: up to 32% faster

What's Changed

  • Restores previous behavior when IonValue.writeTo is called with a writer that has annotations set. by @tgregg in #569
  • Fixes a bug in that prevented the correct IonContext from being copied via IonStruct.cloneAndRemove and IonStruct.cloneAndRetain. by @tgregg in #571
  • Fix NPE in IonStructLite.doClone() by @popematt in #570
  • Restores previous behavior that allowed IonValue.toString to print symbol tokens with unknown text. by @tgregg in #572
  • Fix inconsistent equals and hashcode when annotations are cleared by @popematt in #573
  • Fix NPE in IonRawBinaryWriter by @popematt in #574
  • Add an OSSF Scorecard action by @jobarr-amzn in #576
  • Add gradle wrapper validation by @jobarr-amzn in #577

Full Changelog: v1.10.4...v1.10.5

v1.10.4

14 Sep 22:29
ba81e0c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.10.3...v1.10.4

v1.10.3

13 Sep 17:55
25d24b6
Compare
Choose a tag to compare

What's Changed

  • Bumps version to 1.10.3-SNAPSHOT by @popematt in #537
  • Removes patch buffer and writes the patch length to the outputStream directly. by @linlin-s in #518
  • Remove unnecessary PR-content-check workflow by @popematt in #541
  • Save SpotBugs reports with GHA runs by @gliptak in #544
  • Use https links in CONTRIBUTING.md by @popematt in #554
  • Refactor ion-java-cli to standard layout by @gliptak in #545
  • Iteratively writes values in IonValue.writeTo. by @tgregg in #542
  • Iteratively writes values in IonValue.toString. by @tgregg in #543
  • Iteratively traverses the document during IonValue.hashCode; improves IonValue.writeTo performance. by @tgregg in #546
  • Iteratively traverses the document during IonValue.makeReadOnly by @desaikd in #549
  • Makes IonValue.clone iterative and improves clone performance. by @tgregg in #557
  • Adds a configurable maximum comparison depth to Equivalence. by @tgregg in #558
  • Prepare v1.10.3 release by @popematt in #563

New Contributors

Full Changelog: v1.10.2...v1.10.3

v1.10.2

20 Jul 22:36
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.10.1...v1.10.2

v1.10.1

18 Jul 22:12
381eb55
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.10.0...v1.10.1

v1.10.0

18 Jul 16:12
Compare
Choose a tag to compare

What's Changed

  • Set the default preallocation mode of binary IonWriter to 1. by @linlin-s in #481
  • Fix signing task onlyIf restriction by @jobarr-amzn in #483
  • Updates ion-test-driver workflow to run on ubuntu-latest by @popematt in #489
  • Fix release artifact upload workflow by @popematt in #490
  • Adds build support for Java 20, removes uses of deprecated code by @zslayton in #498
  • Removes redundant AllTests suite. by @tgregg in #501
  • Fixes concurrency stress test to avoid spurious failures. by @tgregg in #502
  • Makes IonSystemLite load values iteratively, not recursively by @zslayton in #499
  • Removes support for reading decimal values as BigInteger by @popematt in #527

Full Changelog: v1.9.6...v1.10.0

v1.9.6

13 Apr 19:31
16a4956
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.9.5...v1.9.6