Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
10.12.1.1
-
None
-
None
Description
The readExternal and writeExternal methods are not checked before reading and writing. Indeed, other classes do check before that. For example, CompressSpacePageOperation implements the above two methods, and both are checked. In particular, the code of CompressSpacePageOperation.readExternal is:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { super.readExternal(in); if( !(this instanceof CompressSpacePageOperation10_2) ) { newHighestPage = in.readInt(); num_pages_truncated = CompressedNumber.readInt(in); } }
The code of InitPageOperation.readExternal is:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { super.readExternal(in); nextRecordId = CompressedNumber.readInt(in); initFlag = CompressedNumber.readInt(in); pageOffset = CompressedNumber.readLong(in); pageFormatId = in.readInt(); }.
It is better to guide the method as CompressSpacePageOperation does.