From 0acd7c7ca1a8c9d48748ed8d9a7c3eadaab1c2d1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 02:50:49 +0000 Subject: [PATCH 1/2] Initial plan From 26433bbba6c75dcd243a12d95d8262220912787e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 03:04:39 +0000 Subject: [PATCH 2/2] fix(executor): use int quantity for LastShares in FIX 4.0-4.2 reports Agent-Logs-Url: https://github.com/quickfix-j/quickfixj/sessions/ccfce0ae-26ab-44a4-822c-4c0cbc9ec351 Co-authored-by: chrjohn <6644028+chrjohn@users.noreply.github.com> --- .../java/quickfix/examples/executor/Application.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java b/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java index 2861b28fc..ed2f0a062 100644 --- a/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java +++ b/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java @@ -149,9 +149,10 @@ public void onMessage(quickfix.fix40.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix40.ExecutionReport fill = new quickfix.fix40.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new OrdStatus(OrdStatus.FILLED), order.getSymbol(), order - .getSide(), orderQty, new LastShares(orderQty.getValue()), new LastPx(price.getValue()), + .getSide(), orderQty, new LastShares(lastShares), new LastPx(price.getValue()), new CumQty(orderQty.getValue()), new AvgPx(price.getValue())); fill.set(order.getClOrdID()); @@ -246,10 +247,11 @@ public void onMessage(quickfix.fix41.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix41.ExecutionReport executionReport = new quickfix.fix41.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new ExecType(ExecType.FILL), new OrdStatus( - OrdStatus.FILLED), order.getSymbol(), order.getSide(), orderQty, new LastShares(orderQty - .getValue()), new LastPx(price.getValue()), new LeavesQty(0), new CumQty(orderQty + OrdStatus.FILLED), order.getSymbol(), order.getSide(), orderQty, new LastShares(lastShares), + new LastPx(price.getValue()), new LeavesQty(0), new CumQty(orderQty .getValue()), new AvgPx(price.getValue())); executionReport.set(order.getClOrdID()); @@ -277,6 +279,7 @@ public void onMessage(quickfix.fix42.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix42.ExecutionReport executionReport = new quickfix.fix42.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new ExecType(ExecType.FILL), new OrdStatus( OrdStatus.FILLED), order.getSymbol(), order.getSide(), new LeavesQty(0), new CumQty( @@ -284,7 +287,7 @@ public void onMessage(quickfix.fix42.NewOrderSingle order, SessionID sessionID) executionReport.set(order.getClOrdID()); executionReport.set(orderQty); - executionReport.set(new LastShares(orderQty.getValue())); + executionReport.set(new LastShares(lastShares)); executionReport.set(new LastPx(price.getValue())); sendMessage(sessionID, executionReport);