This is a maintenance release coming with bug fixes and performance improvements:
#872 Custom exception for buffer over/underflow (#874)
#873 Set record component getter accessible (#875)
#845 Performance improvements for maps (#876)
#845 Use IdentityMap instead of CuckooObjectMap in class resolver (#877)
#882 Catch LinkageError in addition to RTE when accessing fields via ASM (#883)
Other Tasks:
- Enforce minimum maven version and update plugins and test dependencies
The full list of changes can be found here.
Many thanks to all contributors!
Upgrade Notes
This release brings performance improvements for Kryo's custom map implementations (#876). These improvements allowed us to change the map for resolving registrations in DefaultClassResolver
from a CuckooObjectMap
to an IdentityMap
with 3-5% faster throughput (#877). CuckooObjectMap
is now deprecated and will be removed in Kryo 6.
Kryo now throws dedicated exceptions in case of buffer under- or overflows (#872). If you currently parse the error message to check for these conditions, you can catch KryoBufferUnderflowException
and KryoBufferOverflowException
instead.
For migration from previous major versions please check out the migration guide. We're asking the community to help and contribute this part: please edit the migration wiki page as you encounter any information or issues that might help others.