Skip to content

Commit 7e82e9d

Browse files
committed
Merge branch 'QFJ-803' into message-all
2 parents 8098bbb + a79ae1b commit 7e82e9d

File tree

9 files changed

+64
-56
lines changed

9 files changed

+64
-56
lines changed

quickfixj-core/src/main/doc/usermanual/usage/configuration.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ <H3>QuickFIX Settings</H3>
9494
<TR ALIGN="left" VALIGN="middle">
9595
<TD> <I>BeginString</I> </TD>
9696
<TD> Version of FIX this session should use </TD>
97-
<TD> FIX.4.4 <br> FIX.4.3 <br> FIX.4.2 <br> FIX.4.1 <br> FIX.4.0 </TD>
97+
<TD> FIX.4.4 <br> FIX.4.3 <br> FIX.4.2 <br> FIX.4.1 <br> FIX.4.0 <br> FIXT.1.1 (which then requires DefaultApplVerID, see below) </TD>
9898

9999
<TD>&nbsp;</TD>
100100
</TR>

quickfixj-core/src/main/java/quickfix/Session.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1294,6 +1294,8 @@ private void nextLogout(Message logout) throws IOException, RejectLogon, FieldNo
12941294
return;
12951295
}
12961296

1297+
state.setLogoutReceived(true);
1298+
12971299
String msg;
12981300
if (!state.isLogoutSent()) {
12991301
msg = "Received logout request";
@@ -1308,8 +1310,6 @@ private void nextLogout(Message logout) throws IOException, RejectLogon, FieldNo
13081310
getLog().onEvent(msg);
13091311
}
13101312

1311-
state.setLogoutReceived(true);
1312-
13131313
// QFJ-750
13141314
if (getExpectedTargetNum() == logout.getHeader().getInt(MsgSeqNum.FIELD)) {
13151315
state.incrNextTargetMsgSeqNum();
@@ -1395,7 +1395,9 @@ private void nextSequenceReset(Message sequenceReset) throws IOException, Reject
13951395
// which would trigger another resend.
13961396
final String beginString = sequenceReset.getHeader().getString(
13971397
BeginString.FIELD);
1398-
sendResendRequest(beginString, range.getEndSeqNo() + 1, newSequence + 1,
1398+
// New sequence is the sequence number of the next message that
1399+
// should be received, so it must be included in requested range
1400+
sendResendRequest(beginString, range.getEndSeqNo() + 1, newSequence,
13991401
range.getEndSeqNo());
14001402
}
14011403
}

quickfixj-core/src/test/java/quickfix/SessionTest.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,7 @@ public void testSequenceResetStackOverflow() throws Exception {
10501050

10511051
session.close();
10521052
}
1053-
1053+
10541054
// QFJ-626
10551055
@Test
10561056
public void testResendMessagesWithIncorrectChecksum() throws Exception {
@@ -1952,7 +1952,7 @@ private void testLargeQueue(int N) throws Exception {
19521952

19531953
/*
19541954
* Logon request was sent to the counterparty.
1955-
*
1955+
*
19561956
* Now we'll receive Logon response with too high sequence number 101
19571957
* instead of 1, which should initiate the resend process. During the
19581958
* resend process the counterparty should send us the missing messages
@@ -1972,7 +1972,7 @@ private void testLargeQueue(int N) throws Exception {
19721972

19731973
/*
19741974
* We sent a resend request from 1 to 100.
1975-
*
1975+
*
19761976
* The counterpatry quickly responds with a sequence reset from
19771977
* 1 to 100, so we can adjust our expected sequence number value
19781978
* and skip a number of administrative messages that should
@@ -1985,11 +1985,11 @@ private void testLargeQueue(int N) throws Exception {
19851985
/*
19861986
* So, we're still missing the message at sequence 100, which is an
19871987
* application message.
1988-
*
1988+
*
19891989
* Unfortunately the counterparty is very slow in resending
19901990
* application messages, but they will eventually send the
19911991
* message to us.
1992-
*
1992+
*
19931993
* In the meantime they have a temporary burst of real-time data and
19941994
* they send us N (possibly thousands) application messages within a
19951995
* short period of time. All the messages get stored in a temporary
@@ -2003,11 +2003,11 @@ private void testLargeQueue(int N) throws Exception {
20032003
/*
20042004
* Eventually the counterparty sends us the missing application
20052005
* message with sequence number 100.
2006-
*
2006+
*
20072007
* However, depending on the number of messages stored in the
20082008
* temporary queue the queue will be either processed correctly,
20092009
* or the recursive nature of the next()/nextQueued() call will
2010-
* blow up with a StackOverflowError.
2010+
* blow up with a StackOverflowError.
20112011
*/
20122012
// Deliver the last missing application message #100.
20132013
session.next(createPossDupAppMessage(100));
@@ -2141,15 +2141,18 @@ private class UnitTestResponder implements Responder {
21412141
public String sentMessageData;
21422142
public boolean disconnectCalled;
21432143

2144+
@Override
21442145
public boolean send(String data) {
21452146
sentMessageData = data;
21462147
return true;
21472148
}
21482149

2150+
@Override
21492151
public String getRemoteAddress() {
21502152
return null;
21512153
}
21522154

2155+
@Override
21532156
public void disconnect() {
21542157
disconnectCalled = true;
21552158
}

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix40/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ E8=FIX.4.09=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIX.4.035=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIX.4.09=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIX.4.035=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIX.4.09=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIX.4.035=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIX.4.09=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1416=99999910=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIX.4.09=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=99999910=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIX.4.035=434=1349=TW52=<TIME>56=ISLD123=Y36=15
30+
I8=FIX.4.035=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3131

3232
#Sent test request to validate no seq num issue
3333
I8=FIX.4.035=134=1649=TW52=<TIME>56=ISLD112=TEST

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix41/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,21 @@ E8=FIX.4.19=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIX.4.135=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIX.4.19=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIX.4.135=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIX.4.19=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIX.4.135=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIX.4.19=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1416=99999910=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIX.4.19=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=99999910=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIX.4.135=434=1349=TW52=<TIME>56=ISLD123=Y36=15
30+
I8=FIX.4.135=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3131

3232
#Sent test request to validate no seq num issue
3333
I8=FIX.4.135=134=1649=TW52=<TIME>56=ISLD112=TEST
3434
E8=FIX.4.19=5435=034=749=ISLD52=00000000-00:00:0056=TW112=TEST10=0
3535

36+
3637
# logout message and response
3738
I8=FIX.4.135=534=1749=TW52=<TIME>56=ISLD
3839
E8=FIX.4.19=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix42/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ E8=FIX.4.29=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIX.4.235=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIX.4.29=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIX.4.235=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIX.4.29=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIX.4.235=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIX.4.29=5535=234=649=ISLD52=00000000-00:00:0056=TW7=1416=010=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIX.4.29=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=010=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIX.4.235=434=1349=TW52=<TIME>56=ISLD123=Y36=15
31-
30+
I8=FIX.4.235=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3231

3332
#Sent test request to validate no seq num issue
3433
I8=FIX.4.235=134=1649=TW52=<TIME>56=ISLD112=TEST
3534
E8=FIX.4.29=5435=034=749=ISLD52=00000000-00:00:0056=TW112=TEST10=0
3635

36+
3737
# logout message and response
3838
I8=FIX.4.235=534=1749=TW52=<TIME>56=ISLD
3939
E8=FIX.4.29=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix43/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ E8=FIX.4.39=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIX.4.335=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIX.4.39=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIX.4.335=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIX.4.39=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIX.4.335=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIX.4.39=5535=234=649=ISLD52=00000000-00:00:0056=TW7=1416=010=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIX.4.39=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=010=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIX.4.335=434=1349=TW52=<TIME>56=ISLD123=Y36=15
31-
30+
I8=FIX.4.335=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3231

3332
#Sent test request to validate no seq num issue
3433
I8=FIX.4.335=134=1649=TW52=<TIME>56=ISLD112=TEST
3534
E8=FIX.4.39=5435=034=749=ISLD52=00000000-00:00:0056=TW112=TEST10=0
3635

36+
3737
# logout message and response
3838
I8=FIX.4.335=534=1749=TW52=<TIME>56=ISLD
3939
E8=FIX.4.39=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix44/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,21 @@ E8=FIX.4.49=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIX.4.435=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIX.4.49=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIX.4.435=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIX.4.49=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIX.4.435=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIX.4.49=5535=234=649=ISLD52=00000000-00:00:0056=TW7=1416=010=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIX.4.49=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=010=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIX.4.435=434=1349=TW52=<TIME>56=ISLD123=Y36=15
30+
I8=FIX.4.435=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3131

3232
#Sent test request to validate no seq num issue
3333
I8=FIX.4.435=134=1649=TW52=<TIME>56=ISLD112=TEST
3434
E8=FIX.4.49=5435=034=749=ISLD52=00000000-00:00:0056=TW112=TEST10=0
3535

36+
3637
# logout message and response
3738
I8=FIX.4.435=534=1749=TW52=<TIME>56=ISLD
3839
E8=FIX.4.49=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0

quickfixj-core/src/test/resources/quickfix/test/acceptance/definitions/resendRequestChunkSize/fix50/SequenceGapFollowedBySequenceResetWithGapFill.def

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
iCONNECT
55
I8=FIXT.1.135=A34=149=TW52=<TIME>56=ISLD98=0108=21137=7
6-
E8=FIXT.1.19=6735=A34=149=ISLD52=00000000-00:00:00.00056=TW98=0108=21137=710=0
6+
E8=FIXT.1.19=5735=A34=149=ISLD52=00000000-00:00:0056=TW98=0108=21137=710=0
77

88
I8=FIXT.1.135=D34=249=TW52=<TIME>56=ISLD11=ID21=338=10040=154=155=INTC60=<TIME>
99
E8=FIXT.1.19=8135=D34=249=ISLD52=00000000-00:00:0056=TW11=ID21=338=10040=154=155=INTC10=0
@@ -19,20 +19,21 @@ E8=FIXT.1.19=5435=234=449=ISLD52=00000000-00:00:0056=TW7=416=810=0
1919
# Send a GapFill up to the last message 8
2020
I8=FIXT.1.135=434=449=TW52=<TIME>56=ISLD123=Y36=8
2121

22-
# Receive Resend request for messages 9 to (9+5-1 = 13)
23-
E8=FIXT.1.19=5535=234=549=ISLD52=00000000-00:00:0056=TW7=916=1310=0
24-
# Send a GapFill up to the last message 13
25-
I8=FIXT.1.135=434=849=TW52=<TIME>56=ISLD123=Y36=13
22+
# Receive Resend request for messages 8 to (8+5-1 = 12)
23+
E8=FIXT.1.19=5535=234=549=ISLD52=00000000-00:00:0056=TW7=816=1210=0
24+
# Send a GapFill up to the last message 12
25+
I8=FIXT.1.135=434=849=TW52=<TIME>56=ISLD123=Y36=12
2626

27-
# Receive Resend request for messages 14 to 15)
28-
E8=FIXT.1.19=5535=234=649=ISLD52=00000000-00:00:0056=TW7=1416=010=0
27+
# Receive Resend request for messages 12 to 15)
28+
E8=FIXT.1.19=6035=234=649=ISLD52=00000000-00:00:0056=TW7=1216=010=0
2929
# Send a GapFill up to the last message 15
30-
I8=FIXT.1.135=434=1349=TW52=<TIME>56=ISLD123=Y36=15
30+
I8=FIXT.1.135=434=1249=TW52=<TIME>56=ISLD123=Y36=15
3131

3232
#Sent test request to validate no seq num issue
3333
I8=FIXT.1.135=134=1649=TW52=<TIME>56=ISLD112=TEST
3434
E8=FIXT.1.19=5435=034=749=ISLD52=00000000-00:00:0056=TW112=TEST10=0
3535

36+
3637
# logout message and response
3738
I8=FIXT.1.135=534=1749=TW52=<TIME>56=ISLD
3839
E8=FIXT.1.19=4535=534=849=ISLD52=00000000-00:00:0056=TW10=0

0 commit comments

Comments
 (0)