First page Back Continue Last page Overview Graphics
Why class4 and class5 incompat?
When class5's TestObjectSuper tries to read its extra optional data, it is at a point in the stream in which blockLength is already maxBlockLength and it's right at the beginning of an end tag.
Since blockLength is maxBlockLength (what start_block uses to prevent recursive calls from alignAndCheck and checkBlockLength as well as when the next thing is a valuetag or end tag), our code never checks for an end tag in checkBlockLength We ultimately get a MARSHAL exception.
Tried many ways around this, but ultimately it was too complicated and didn't work in all cases. These tests will generally show you pretty quickly if your changes help.