Skip to content

Releases: amazon-ion/ion-java

v1.9.3

23 Mar 23:31
400eebf
Compare
Choose a tag to compare

What's Changed

  • Fixes a bug in WriteBuffer#shiftBytesLeft by @zslayton in #416
  • Increases the non-incremental binary reader's container length limit from 2GB to 72PB. by @tgregg in #418
  • Fixes a bug in header compaction for empty containers. by @tgregg in #420

Full Changelog: v1.9.1...v1.9.3

v1.9.2

01 Mar 23:32
692af8b
Compare
Choose a tag to compare

Reverts 1.9.1 due to regression found in #416. This release is functionally equivalent to 1.9.0.

v1.9.1

16 Feb 02:51
521961b
Compare
Choose a tag to compare

Please note, as per #416, non-default pre-allocation configuration for the IonWriter can cause corruption in certain cases, it is recommended that you do not use this release.

Features

  • Adds members to the IonNumber interface and makes IonDecimal, IonFloat, and IonInt implement IonNumber (#400)
  • Performance improvements
    • Compacts preallocated headers when possible (#401)
    • Eliminates allocations in the binary writer (#404)
    • Backs Pool with ConcurrentLinkedQueue instead of ArrayBlockingQueue (#405)
    • Optimizes the incremental reader's symbol table reading logic for tables with imports. (#407)
    • Enables the incremental reader to iterate annotations lazily. (#408)
    • Properly sizes the buffer when a fixed-size stream is provided to the incremental reader with default configuration. (#410)

Fixes

  • Fixes Ion Binary Reader to fail fast when an IVM type code is encountered in an illegal position (#397)
  • Adds explicit narrowing casts in Timestamp (#411)

List of commits: v1.8.3...v1.9.0

v1.9.0

13 Oct 23:51
Compare
Choose a tag to compare

Features

  • Added a new binary reader implementation that speeds up reads by up to 50% and allows for data to be parsed incrementally from a growing InputStream. To enable the new reader implementation, use IonReaderBuilder.withIncrementalReadingEnabled. (#355)
  • Added an IonSystemBuilder option (IonSystemBuilder.withReaderBuilder) that allows users to specify an IonReaderBuilder to be used to construct any IonReaders needed by IonSystem’s methods (newReader, iterate, singleValue, and IonLoader.load via IonSystem.getLoader or IonSystem.newLoader). This may be used, for example, to use the new incremental binary reader to read binary Ion data into its IonValue representation. (#385)

Fixes

  • Added a pool of reusable UTF-8 decoders to be used by both binary reader implementations, making repetitive instantiation less expensive. (#388)
  • Eliminated the use of ConcurrentLinkedQueue.size() in the binary writer’s block pool, improving writer performance when the pool gets large. (#389)

List of commits: v1.8.3...v1.9.0

v1.8.3

11 Aug 00:25
ddaa965
Compare
Choose a tag to compare

Fixes

  • Fixed handling of NaN and +/-Inf when downconverting to json.

Features

  • Made writeValueRecursively iterative. (#368)
  • Adds a pool of UTF8 String encoders. (#369)
  • Adds GitHub workflow to detect the performance regression of ion-java automatically. (#373)

List of commits: v1.8.2...v1.8.3

v1.8.2

27 May 00:36
Compare
Choose a tag to compare

Fixes

  • Removed an assertion that could be violated when an invalid text encoding was encountered; replaced with IonException. (#357)
  • Sped up modifications of deeply-nested IonValues by up to 40% by adding a reference to IonSystem within IonContainer. This change also prevents a potential StackOverflowError when working with deeply-nested containers. (#361)
  • Reduced the CPU time, heap allocations, and garbage collection time required to instantiate binary writers by up to 70% by making PooledBlockAllocatorProvider a singleton. (#363)

List of commits: v1.8.1...v1.8.2

v1.8.1

07 Apr 18:31
Compare
Choose a tag to compare

Fixes

  • Catches exception of unknown SIDs that bigger than INT_MAX. (#349)

Features

  • Add option to configure whether top level values should be delimited by newlines in an Ion Datagram; Add option to configure what line separator (eg. LF, CR+LF, etc) should be used (#351)

List of commits: v1.8.0...v1.8.1

v1.8.0

10 Nov 00:57
44e476f
Compare
Choose a tag to compare

Fixes

  • Fixes a bug in IonReaderBinaryRawX.readBytes (#318).
  • Avoids repetitive reallocation of PooledBlockAllocatorProvider in _PrivateIon_HashTrampoline.

List of commits: v1.7.1...v1.8.0

v1.7.1

05 Sep 03:51
4cf824b
Compare
Choose a tag to compare

Reverts change to pretty printing--removes the extra space after :

List of commits v1.7.0...v1.7.1

v1.7.0

03 Sep 04:23
efd5b3f
Compare
Choose a tag to compare

Fixes

  • Adds a space after a field-name's colon when pretty-printing
  • Avoid nesting IonSequenceLite.SubListView instances
  • Improves read performance of streams that use LST append with a large number of symbols.

Features

  • Adds Timestamp.forEpochSecond()
  • Make IonSequence.SubListView implement equals and hashCode

List of commits v1.6.1...v1.7.0