@@ -1214,13 +1214,13 @@ ignore the message and let the problem correct itself (optimistic approach).
1214
1214
}
1215
1215
if (!(MessageUtils .isAdminMessage (msgType ))
1216
1216
&& (sessionBeginString .compareTo (FixVersions .BEGINSTRING_FIX42 ) >= 0 )) {
1217
- generateBusinessReject (message , BusinessRejectReason .APPLICATION_NOT_AVAILABLE ,
1217
+ generateBusinessReject (message , t . getMessage (), BusinessRejectReason .APPLICATION_NOT_AVAILABLE ,
1218
1218
0 );
1219
1219
} else {
1220
1220
if (MsgType .LOGON .equals (msgType )) {
1221
1221
disconnect ("Problem processing Logon message" , true );
1222
1222
} else {
1223
- generateReject (message , SessionRejectReason .OTHER , 0 );
1223
+ generateReject (message , t . getMessage (), SessionRejectReason .OTHER , 0 );
1224
1224
}
1225
1225
}
1226
1226
} else {
@@ -1732,6 +1732,11 @@ private void setRejectReason(Message reject, int field, String reason,
1732
1732
1733
1733
private void generateBusinessReject (Message message , int err , int field ) throws FieldNotFound ,
1734
1734
IOException {
1735
+ generateBusinessReject (message , null , err , field );
1736
+ }
1737
+
1738
+ private void generateBusinessReject (Message message , String text , int err , int field ) throws FieldNotFound ,
1739
+ IOException {
1735
1740
final Header header = message .getHeader ();
1736
1741
ApplVerID targetDefaultApplicationVersionID = getTargetDefaultApplicationVersionID ();
1737
1742
final Message reject = messageFactory .create (sessionID .getBeginString (), targetDefaultApplicationVersionID ,
@@ -1746,7 +1751,12 @@ private void generateBusinessReject(Message message, int err, int field) throws
1746
1751
reject .setInt (BusinessRejectReason .FIELD , err );
1747
1752
state .incrNextTargetMsgSeqNum ();
1748
1753
1749
- final String reason = BusinessRejectReasonText .getMessage (err );
1754
+ final String reason ;
1755
+ if (text != null ) {
1756
+ reason = text ;
1757
+ } else {
1758
+ reason = BusinessRejectReasonText .getMessage (err );
1759
+ }
1750
1760
setRejectReason (reject , field , reason , field != 0 );
1751
1761
getLog ().onErrorEvent (
1752
1762
"Reject sent for message number " + msgSeqNum + (reason != null ? (": " + reason ) : "" )
0 commit comments