@@ -1214,13 +1214,13 @@ ignore the message and let the problem correct itself (optimistic approach).
12141214 }
12151215 if (!(MessageUtils .isAdminMessage (msgType ))
12161216 && (sessionBeginString .compareTo (FixVersions .BEGINSTRING_FIX42 ) >= 0 )) {
1217- generateBusinessReject (message , BusinessRejectReason .APPLICATION_NOT_AVAILABLE ,
1217+ generateBusinessReject (message , t . getMessage (), BusinessRejectReason .APPLICATION_NOT_AVAILABLE ,
12181218 0 );
12191219 } else {
12201220 if (MsgType .LOGON .equals (msgType )) {
12211221 disconnect ("Problem processing Logon message" , true );
12221222 } else {
1223- generateReject (message , SessionRejectReason .OTHER , 0 );
1223+ generateReject (message , t . getMessage (), SessionRejectReason .OTHER , 0 );
12241224 }
12251225 }
12261226 } else {
@@ -1732,6 +1732,11 @@ private void setRejectReason(Message reject, int field, String reason,
17321732
17331733 private void generateBusinessReject (Message message , int err , int field ) throws FieldNotFound ,
17341734 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 {
17351740 final Header header = message .getHeader ();
17361741 ApplVerID targetDefaultApplicationVersionID = getTargetDefaultApplicationVersionID ();
17371742 final Message reject = messageFactory .create (sessionID .getBeginString (), targetDefaultApplicationVersionID ,
@@ -1746,7 +1751,12 @@ private void generateBusinessReject(Message message, int err, int field) throws
17461751 reject .setInt (BusinessRejectReason .FIELD , err );
17471752 state .incrNextTargetMsgSeqNum ();
17481753
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+ }
17501760 setRejectReason (reject , field , reason , field != 0 );
17511761 getLog ().onErrorEvent (
17521762 "Reject sent for message number " + msgSeqNum + (reason != null ? (": " + reason ) : "" )
0 commit comments