------------------------------------------------------------ Release Notes for Transform SWF for Java, Version 2.2.1 ------------------------------------------------------------ The release contains bug fixes and minor updates. Bug Fixes Clip events are not re-encoded correctly. Cannot decode WAV files with odd number of bytes in data. Cannot decode clip events generated by Flash CS3. Font definitions with no name do not decode. Class Changes FSCoder no longer throws IllegalArgumentExceptions on pointer overflows. Documentation Changes None scheduled Testing Changes None scheduled Package Changes None scheduled ------------- Bug Fixes ------------- 1. Clip events are not re-encoded correctly. When the code was updated in release 2.1.6 to handle cases where end of action markers were encountered in the middle of an array of actions (which caused decoded to terminate prematurely) a bug was introduced in the way FSClipEvent objects were encoded: the offset to the end of the clip event was mis-calculated by one byte causing the encoded movie not to play correctly. This is now fixed. 2. Cannot decode WAV files with odd number of bytes in data. WAV files that end with a DATA block which contains an odd number of bytes can now be decoded correctly by the FSSoundConstructor. 3. Cannot decode clip events generated by Flash CS3. There is an internal field in FSClipEvent that gives the offset to either the next event or to the end of the event array. In Flash CS3 the offset appears to be incorrect. Instead of the offset being set to the length of the actions for the handler it is 1 byte larger. The code in the FSClipEvent has been updated to test for this condition allowing files to be decoded. 4.Font definitions with no name do not decode. Font objects (FSFontInfo, FSFontInfo2, FSDefineFont2) contain a field for the font name. In releas 2.1.6 code was added to remove trailing null bytes but the code did not test for cases where the font name was not set. This is now fixed. ----------------- Class Changes ----------------- 1. FSCoder no longer throws IllegalArgumentExceptions on pointer overflows. If the internal pointer used in the FSCoder class to mark the current position in the data buffer is moved beyond the end of the buffer an IllegalArgumentException is no longer thrown. Instead the position of the pointer is clamped to the end of the buffer. Any attempt to read the data will return zero. Read errors can be detected by checking whether the expected number of bytes were read by comparing the pointer value at the start and end of reading a block of data. This is an internal change and will not have any impact unless you use the FSCoder class directly to decode blocks of data. ------------------------- Documentation Changes ------------------------- None ------------------- Testing Changes ------------------- None ------------------- Package Changes ------------------- None