This is an automated email from the ASF dual-hosted git repository.
victorromero pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new b7845166c4 FINERACT-2227: Fix triggered SMS messages error (#4511)
b7845166c4 is described below
commit b7845166c49b629d719568c309a8616282bdce2d
Author: Peter Mwangi <[email protected]>
AuthorDate: Tue Apr 1 05:43:30 2025 +0300
FINERACT-2227: Fix triggered SMS messages error (#4511)
---
.../SmsMessageScheduledJobServiceImpl.java | 41 +++++++++++++---------
1 file changed, 24 insertions(+), 17 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/scheduler/SmsMessageScheduledJobServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/scheduler/SmsMessageScheduledJobServiceImpl.java
index 278f4fc7b6..733601a712 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/scheduler/SmsMessageScheduledJobServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/scheduler/SmsMessageScheduledJobServiceImpl.java
@@ -22,7 +22,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
@@ -90,36 +89,44 @@ public class SmsMessageScheduledJobServiceImpl implements
SmsMessageScheduledJob
if (!smsDataMap.isEmpty()) {
List<SmsMessage> toSaveMessages = new ArrayList<>();
List<SmsMessage> toSendNotificationMessages = new
ArrayList<>();
+
for (Map.Entry<SmsCampaign, Collection<SmsMessage>> entry :
smsDataMap.entrySet()) {
- Iterator<SmsMessage> smsMessageIterator =
entry.getValue().iterator();
- Collection<SmsMessageApiQueueResourceData>
apiQueueResourceDatas = new ArrayList<>();
- while (smsMessageIterator.hasNext()) {
- SmsMessage smsMessage = smsMessageIterator.next();
+ for (SmsMessage smsMessage : entry.getValue()) {
if (smsMessage.isNotification()) {
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
toSendNotificationMessages.add(smsMessage);
} else {
- SmsMessageApiQueueResourceData
apiQueueResourceData = SmsMessageApiQueueResourceData.instance(
- smsMessage.getId(), null, null, null,
smsMessage.getMobileNo(), smsMessage.getMessage(),
- entry.getKey().getProviderId());
- apiQueueResourceDatas.add(apiQueueResourceData);
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
toSaveMessages.add(smsMessage);
}
}
- if (toSaveMessages.size() > 0) {
- this.smsMessageRepository.saveAll(toSaveMessages);
- this.smsMessageRepository.flush();
- this.taskExecutor.execute(new
SmsTask(apiQueueResourceDatas, ThreadLocalContextUtil.getContext()));
- }
- if (!toSendNotificationMessages.isEmpty()) {
-
this.notificationSenderService.sendNotification(toSendNotificationMessages);
+ }
+ if (!toSaveMessages.isEmpty()) {
+ this.smsMessageRepository.saveAll(toSaveMessages);
+ this.smsMessageRepository.flush();
+
+ for (Map.Entry<SmsCampaign, Collection<SmsMessage>> entry
: smsDataMap.entrySet()) {
+ Collection<SmsMessageApiQueueResourceData>
apiQueueResourceDatas = new ArrayList<>();
+ for (SmsMessage smsMessage : entry.getValue()) {
+ if (!smsMessage.isNotification()) {
+ SmsMessageApiQueueResourceData
apiQueueResourceData = SmsMessageApiQueueResourceData.instance(
+ smsMessage.getId(), null, null, null,
smsMessage.getMobileNo(), smsMessage.getMessage(),
+ entry.getKey().getProviderId());
+
apiQueueResourceDatas.add(apiQueueResourceData);
+ }
+ }
+ if (!apiQueueResourceDatas.isEmpty()) {
+ this.taskExecutor.execute(new
SmsTask(apiQueueResourceDatas, ThreadLocalContextUtil.getContext()));
+ }
}
+ }
+ if (!toSendNotificationMessages.isEmpty()) {
+
this.notificationSenderService.sendNotification(toSendNotificationMessages);
}
}
} catch (Exception e) {
- log.error("Error occured.", e);
+ log.error("Error occurred.", e);
}
}