Releases: amazon-ion/ion-java
Releases · amazon-ion/ion-java
v1.9.5
Fixes:
- Makes JarInfo retrieve build information from a build.properties file instead of the manifest, resolving potential classpath conflicts (#433).
- Makes performance regression detection output easier to understand (#435).
- Fixes a bug in the incremental reader that caused certain Decimal, BigDecimal, and BigInteger values to be read incorrectly in multi-reader contexts (#436).
Full changelog: v1.9.4...v1.9.5
v1.9.4
Fixes
- Fixed a bug that prevented the incremental reader from recovering from an oversized value that occurred mid-stream. (#426)
- Added missing validation for the length of symbol table child values in the incremental reader. (#427)
Full changelog: v1.9.3...v1.9.4
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