First page Back Continue Last page Overview Graphics
How does ORB input stream monitor optional data?
If the optional data only has a null, the ORB stream (CDRInputStream_1_0) uses a specialNoOptionalDataState boolean to throw the specified MARSHAL exception.
If what the ValueHandler wants to read won't fit in the current chunk, we know it can't be compatible since one can't break primitives, arrays of primitives, Strings, etc, across chunks.
If we're at the end of a chunk and the next thing is an end tag, we know we must have reached the end of the current valuetype's data, so requesting more would be an error.