private void validateCheckSum(String messageData) throws InvalidMessage { try { // Body length is checked at the protocol layer final int checksum = trailer.getInt(CheckSum.FIELD); if (checksum != MessageUtils.checksum(messageData)) { // message will be ignored if checksum is wrong or missing throw MessageUtils.newInvalidMessageException("Expected CheckSum=" + MessageUtils.checksum(messageData) + ", Received CheckSum=" + checksum + " in " + messageData, this); } } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException("Field not found: " + e.field + " in " + messageData, this); } }
private void validateCheckSum(String messageData) throws InvalidMessage { try { // Body length is checked at the protocol layer final int checksum = trailer.getInt(CheckSum.FIELD); if (checksum != MessageUtils.checksum(messageData)) { // message will be ignored if checksum is wrong or missing throw MessageUtils.newInvalidMessageException("Expected CheckSum=" + MessageUtils.checksum(messageData) + ", Received CheckSum=" + checksum + " in " + messageData, this); } } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException("Field not found: " + e.field + " in " + messageData, this); } }
public static String getMessageType(String messageString) throws InvalidMessage { final String value = getStringField(messageString, 35); if (value == null) { throw newInvalidMessageException("Missing or garbled message type in " + messageString, getMinimalMessage(messageString)); } return value; }
public static String getMessageType(String messageString) throws InvalidMessage { final String value = getStringField(messageString, 35); if (value == null) { throw newInvalidMessageException("Missing or garbled message type in " + messageString, getMinimalMessage(messageString)); } return value; }
private String getMsgType() throws InvalidMessage { try { return header.getString(MsgType.FIELD); } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException(e.getMessage() + " in " + messageData, this); } }
private String getMsgType() throws InvalidMessage { try { return header.getString(MsgType.FIELD); } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException(e.getMessage() + " in " + messageData, this); } }
throw MessageUtils.newInvalidMessageException("Equal sign not found in field in " + messageData, this); } catch (final NumberFormatException e) { position = messageData.indexOf('\001', position + 1) + 1; throw MessageUtils.newInvalidMessageException("Bad tag format: " + e.getMessage() + " in " + messageData, this); throw MessageUtils.newInvalidMessageException("SOH not found at end of field: " + tag + " in " + messageData, this); fieldLength = fields.getInt(lengthField); } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException("Did not find length field " + e.field + " required to parse data field " + tag + " in " + messageData, this); sohOffset = messageData.indexOf('\001', sohOffset + 1); if (sohOffset == -1) { throw MessageUtils.newInvalidMessageException("SOH not found at end of field: " + tag + " in " + messageData, this);
throw MessageUtils.newInvalidMessageException("Equal sign not found in field in " + messageData, this); } catch (final NumberFormatException e) { position = messageData.indexOf('\001', position + 1) + 1; throw MessageUtils.newInvalidMessageException("Bad tag format: " + e.getMessage() + " in " + messageData, this); throw MessageUtils.newInvalidMessageException("SOH not found at end of field: " + tag + " in " + messageData, this); fieldLength = fields.getInt(lengthField); } catch (final FieldNotFound e) { throw MessageUtils.newInvalidMessageException("Did not find length field " + e.field + " required to parse data field " + tag + " in " + messageData, this); sohOffset = messageData.indexOf('\001', sohOffset + 1); if (sohOffset == -1) { throw MessageUtils.newInvalidMessageException("SOH not found at end of field: " + tag + " in " + messageData, this);
private static ApplVerID getApplVerID(Session session, String messageString) throws InvalidMessage { ApplVerID applVerID = null; final String applVerIdString = getStringField(messageString, ApplVerID.FIELD); if (applVerIdString != null) { applVerID = new ApplVerID(applVerIdString); } if (applVerID == null) { applVerID = session.getTargetDefaultApplicationVersionID(); } if (applVerID == null && isLogon(messageString)) { final String defaultApplVerIdString = getStringField(messageString, DefaultApplVerID.FIELD); if (defaultApplVerIdString != null) { applVerID = new ApplVerID(defaultApplVerIdString); } } if (applVerID == null) { throw newInvalidMessageException("Can't determine ApplVerID from message " + messageString, getMinimalMessage(messageString)); } return applVerID; }
private static ApplVerID getApplVerID(Session session, String messageString) throws InvalidMessage { ApplVerID applVerID = null; final String applVerIdString = getStringField(messageString, ApplVerID.FIELD); if (applVerIdString != null) { applVerID = new ApplVerID(applVerIdString); } if (applVerID == null) { applVerID = session.getTargetDefaultApplicationVersionID(); } if (applVerID == null && isLogon(messageString)) { final String defaultApplVerIdString = getStringField(messageString, DefaultApplVerID.FIELD); if (defaultApplVerIdString != null) { applVerID = new ApplVerID(defaultApplVerIdString); } } if (applVerID == null) { throw newInvalidMessageException("Can't determine ApplVerID from message " + messageString, getMinimalMessage(messageString)); } return applVerID; }
private void parseHeader(DataDictionary dd, boolean doValidation) throws InvalidMessage { if (doValidation) { final boolean validHeaderFieldOrder = isNextField(dd, header, BeginString.FIELD) && isNextField(dd, header, BodyLength.FIELD) && isNextField(dd, header, MsgType.FIELD); if (!validHeaderFieldOrder) { // Invalid message preamble (first three fields) is a serious // condition and is handled differently from other message parsing errors. throw MessageUtils.newInvalidMessageException("Header fields out of order in " + messageData, MessageUtils.getMinimalMessage(messageData)); } } StringField field = extractField(dd, header); while (field != null && isHeaderField(field, dd)) { header.setField(field); if (dd != null && dd.isGroup(DataDictionary.HEADER_ID, field.getField())) { parseGroup(DataDictionary.HEADER_ID, field, dd, dd, header, doValidation); } field = extractField(dd, header); } pushBack(field); }
private void parseHeader(DataDictionary dd, boolean doValidation) throws InvalidMessage { if (doValidation) { final boolean validHeaderFieldOrder = isNextField(dd, header, BeginString.FIELD) && isNextField(dd, header, BodyLength.FIELD) && isNextField(dd, header, MsgType.FIELD); if (!validHeaderFieldOrder) { // Invalid message preamble (first three fields) is a serious // condition and is handled differently from other message parsing errors. throw MessageUtils.newInvalidMessageException("Header fields out of order in " + messageData, MessageUtils.getMinimalMessage(messageData)); } } StringField field = extractField(dd, header); while (field != null && isHeaderField(field, dd)) { header.setField(field); if (dd != null && dd.isGroup(DataDictionary.HEADER_ID, field.getField())) { parseGroup(DataDictionary.HEADER_ID, field, dd, dd, header, doValidation); } field = extractField(dd, header); } pushBack(field); }
declaredGroupCount = Integer.parseInt(field.getValue()); } catch (final NumberFormatException e) { throw MessageUtils.newInvalidMessageException("Repeating group count requires an Integer but found '" + field.getValue() + "' in " + messageData, this);
declaredGroupCount = Integer.parseInt(field.getValue()); } catch (final NumberFormatException e) { throw MessageUtils.newInvalidMessageException("Repeating group count requires an Integer but found '" + field.getValue() + "' in " + messageData, this);