System.err.println("msgtype="+msgType+",tag="+tag+",rg="+rg);
    private void parseBody() throws InvalidMessage {        StringField field = extractField();        while (field != null) {            int tag = field.getField();            if (isTrailerField(tag)) {                pushBack(field);                return;            }            if (isHeaderField(tag)) {                if (isValidStructure) {                    isValidStructureTag = tag;                    isValidStructure = false;                }                header.setField(field);            } else {                setField(field);            }            String msgType;            try {                msgType = header.getString(MsgType.FIELD);            } catch (FieldNotFound e) {                throw new InvalidMessage(e.getMessage());            }            if (dd != null && dd.isGroup(msgType, tag)) {                DataDictionary.RepeatingGroup rg = dd.getGroup(msgType, tag);                System.err.println("msgtype="+msgType+",tag="+tag+",rg="+rg);                int groupField = tag;                int firstField = ((Integer) rg.getFirstField().getKey()).intValue();                Group group = null;                boolean inGroupParse = true;                while (inGroupParse) {                    field = extractField(group);                    if (field.getTag() == firstField) {                        if (group != null) {                            addGroup(group);                        }                        group = new Group(groupField, firstField);                        group.setField(field);                    } else if (rg                            .isElementInContainer(DataDictionary.Field.class, new Integer(field.getTag()))) {                        group.setField(field);                    } else {                        if (group != null) {                            addGroup(group);                        }                        pushBack(field);                        inGroupParse = false;                    }                }            }            field = extractField();        }    }