You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by vi...@apache.org on 2025/04/01 02:43:35 UTC
(fineract) branch develop updated: FINERACT-2227: Fix triggered SMS messages error (#4511)
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 <th...@gmail.com>
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);
}
}