Releases: amazon-ion/ion-java
Releases · amazon-ion/ion-java
v1.9.3
v1.9.2
v1.9.1
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
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 anIonReaderBuilder
to be used to construct anyIonReaders
needed byIonSystem
’s methods (newReader
,iterate
,singleValue
, andIonLoader.load
viaIonSystem.getLoader
orIonSystem.newLoader
). This may be used, for example, to use the new incremental binary reader to read binary Ion data into itsIonValue
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
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
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
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
v1.7.1
Reverts change to pretty printing--removes the extra space after :
List of commits v1.7.0...v1.7.1
v1.7.0
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
implementequals
andhashCode
List of commits v1.6.1...v1.7.0