Releases: RuedigerMoeller/fast-serialization
Releases · RuedigerMoeller/fast-serialization
2.0 beta
- removed unused features + classes
- changed package name :-)
- reads input in chunks instead of fully (caused many problems with 1.x)
beta + undocumented:
- added codec layer to prepare for optional non-binary serialization
- new MinBin codec includes schema into the stream (~binary JSON). Allows to extract data of a serialized stream without having access to original classes (archiving/cross language).
- experimental JavaScript deserialization based on MinBin, code generator for JS pseudo classes
git issue 13
bugfix
bugfix jdk-compatibility
fixes for following weird combinations
- writeMethod, but no readMethod defined
- readMethod, but no writeMethod defined
- use defaultWriteObject, read with readFields()
- use defaultWriteObject, read with readObject()
- use writeObject, read with defaultReadObject()
[there could be even more combinations, but I did not find sample classes in JDK, I'll fix as they come]
Testclasses:
- BigDecimal (uses putField, writes old fields from jdk 1.02 ?)
- javax.security.auth.Subject (synchronizedSets)
- HtmlEditorKit (all kind of weird stuff)
- HtmlDocument (moar weird stuff)
- Inet6Address
don't hesitate to report compatibility issues (aka works with jdk object stream but not with fst).
JDK Compatibility fix
Note: Introduced some new issues. Use 1.55 instead
JDK-compatibility
fst internally has two modes:
- optimized mode for classes without any specials such as readObject/writeObject/...
- if fst detects JDK-serialization specials it falls back to a (slower) compatible mode. But even then there have been optimizations to speed up compatibility mode. However Issue 12 showed fst would have to literally read source code of some classes to make correct decisions. Therefore I was forced to deoptimize compatibility mode. Fortunately this will not affect overall performance, as common classes do not run in compatibility mode as custom serializers have been included for popular classes (e.g. collections, Date, BigDecimal) to speed them up. Additionally most of the JDK classes implement straight serializable without any writeObject/readObject/readRessolve stuff, so can be serialized in optimized mode.
added
public Object asObject( byte b[] )
public byte[] asByteArray( Serializable object )
to FSTConfiguration
v1.55 JDK 1.6 compatible build
Warning: fst serialization will work, struct emulation not.
bugfix + classloader support
- adds setClassloader to FSTConfiguration. Using custom classloading currently requires a dedicated FSTConfiguration per classloader. In version 2.x it will be possible to temporary add custom classloading to fstobjectinputstream as creating a FSTConfigruation is a very expensive operation
- fatal flaw in FSTObjectInput.resetForReUse (introduced during refactoring) fixed.
1.54 fix for git issue 2
- when registering a serializer for a non serializable class an exception was thrown "not serializable". This was a side effect of moving the serializable check from stream to static metainfo init in 1.50
bugfix release (java.lang.Float failure)
- rarely used java.lang.Float was not correctly read due to a typo.
- added all "Big" Numbers to testcase
FST 1.52 bugfix release
- transient fields where not initialized upon deser (e.g. transient x = -1;)
FST Serialization 1.51
- struct build woes: javassist bugged with last build (seems it requires 1.7 class format). structs work with this build
- no changes for serialization