@@ -115,33 +115,38 @@ public GXBaseCollection<SdtMessage> getMessages(SdtMessageOptions receiveOptions
115115 return receivedMessagesResult ;
116116 }
117117
118- public SdtMessageResult deleteMessage (String messageHandleId , GXBaseCollection <SdtMessages_Message >[] errorMessagesArr , boolean [] success ) {
118+ public SdtMessageResult deleteMessage (SdtMessage msg , GXBaseCollection <SdtMessages_Message >[] errorMessagesArr , boolean [] success ) {
119119 GXBaseCollection <SdtMessages_Message > errorMessages = errorMessagesArr [0 ];
120120 errorMessages .clear ();
121121 SdtMessageResult sdtDelete = new SdtMessageResult ();
122+ if (msg == null || msg .getgxTv_SdtMessage_Messagehandleid ().isEmpty ()) {
123+ sdtDelete .setgxTv_SdtMessageResult_Messagestatus (DeleteMessageResult .FAILED );
124+ appendErrorMessage (errorMessages , 1 , "Message HandledId property cannot be empty" );
125+ return sdtDelete ;
126+ }
127+
122128 try {
123129 validQueue ();
124- DeleteMessageResult deletedMessage = queue .deleteMessage (messageHandleId );
130+ DeleteMessageResult deletedMessage = queue .deleteMessage (msg . getgxTv_SdtMessage_Messagehandleid () );
125131 sdtDelete .setgxTv_SdtMessageResult_Messageid (deletedMessage .getMessageId ());
126132 sdtDelete .setgxTv_SdtMessageResult_Servermessageid (deletedMessage .getMessageServerId ());
127133 sdtDelete .setgxTv_SdtMessageResult_Messagestatus (deletedMessage .getMessageDeleteStatus ());
128134 success [0 ] = true ;
129135 } catch (Exception ex ) {
130136 queueErrorMessagesSetup (ex , errorMessages );
131- logger .error (String .format ("Could not delete Message '%s' from Queue " , messageHandleId ), ex );
137+ logger .error (String .format ("Could not delete Message '%s' from Queue" , msg . getgxTv_SdtMessage_Messagehandleid () ), ex );
132138 }
133139 return sdtDelete ;
134140 }
135141
136- public GXBaseCollection <SdtMessageResult > deleteMessages (GXSimpleCollection < String > msgHandlesToDelete , GXBaseCollection <SdtMessages_Message >[] errorMessagesArr , boolean [] success ) {
142+ public GXBaseCollection <SdtMessageResult > deleteMessages (GXBaseCollection < SdtMessage > msgHandlesToDelete , GXBaseCollection <SdtMessages_Message >[] errorMessagesArr , boolean [] success ) {
137143 GXBaseCollection <SdtMessages_Message > errorMessages = errorMessagesArr [0 ];
138144 errorMessages .clear ();
139-
140145 try {
141146 validQueue ();
142147 List <String > handles = new ArrayList <>();
143- for (String hnd : msgHandlesToDelete ) {
144- handles .add (hnd );
148+ for (SdtMessage msg : msgHandlesToDelete ) {
149+ handles .add (msg . getgxTv_SdtMessage_Messagehandleid () );
145150 }
146151 List <DeleteMessageResult > deletedMessage = queue .deleteMessages (handles );
147152 success [0 ] = true ;
@@ -155,10 +160,15 @@ public GXBaseCollection<SdtMessageResult> deleteMessages(GXSimpleCollection<Stri
155160
156161 protected void queueErrorMessagesSetup (Exception ex , GXBaseCollection <SdtMessages_Message > messages ) {
157162 if (messages != null && ex != null ) {
158- StructSdtMessages_Message struct = new StructSdtMessages_Message ();
159- struct .setType ((byte ) 1 );
160- struct .setDescription (ex .getMessage ());
163+ appendErrorMessage (messages , 1 , ex .getMessage ());
161164 }
162165 }
163166
167+ private void appendErrorMessage (GXBaseCollection <SdtMessages_Message > messages , int errorType , String errMessage ) {
168+ SdtMessages_Message struct = new SdtMessages_Message ();
169+ struct .setgxTv_SdtMessages_Message_Type ((byte ) errorType );
170+ struct .setgxTv_SdtMessages_Message_Description (errMessage );
171+ messages .add (struct );
172+ }
173+
164174}
0 commit comments