Details
Description
Field 93 is SignatureLength, Field 89 is Signature. The fields 89 and 93 are in the trailer. 89 is DataField. 93 is the length of 89. When receives a message containing field 89, accptor will extract every field in order. 89 is extracted earlier. Acceptor cannot find the length of it(93) at this time. So exception occurs.
A effective method is to change the order of message. Put the field 93 former to the field 89. Thus, the field 93 is extracted earlier than 89. Use this method:
Message.Trailer.calculateString():
super.calculateString( buffer, new int[]
, new int[]
{CheckSum.FIELD });