--- core/src/main/java/quickfix/Session.java (original) +++ core/src/main/java/quickfix/Session.java @@ -1293,9 +1293,13 @@ } if ((checkTooHigh || checkTooLow) && state.isResendRequested()) { + int endPoint = msgSeqNum; + if(msg.getHeader().getString(MsgType.FIELD).equals(MsgType.SEQUENCE_RESET) && + msg.isSetField(NewSeqNo.FIELD)) + endPoint = Math.max(endPoint, msg.getInt(NewSeqNo.FIELD) - 1); synchronized (state.getLock()) { int[] range = state.getResendRange(); - if (msgSeqNum >= range[1]) { + if (endPoint >= range[1]) { getLog().onEvent( "ResendRequest for messages FROM " + range[0] + " TO " + range[1] + " has been satisfied.");