diff --git a/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java b/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java index 64d9c3d3b..4eb23efef 100644 --- a/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java +++ b/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java @@ -947,7 +947,7 @@ protected OneWaySmsSetCollection fetchSchedulable(int maxRecordCount) throws Per return new OneWaySmsSetCollection(); } - ArrayList lstS = dbOperations_C2.c2_getRecordList(processedDueSlot); + ArrayList lstS = filterOut(dbOperations_C2.c2_getRecordList(processedDueSlot)); ArrayList lst = dbOperations_C2.c2_sortRecordList(lstS); OneWaySmsSetCollection res = new OneWaySmsSetCollection(); res.setListSmsSet(lst); @@ -1027,4 +1027,17 @@ public int size() { return lst.size() - uploadedCount; } } + + private static ArrayList filterOut(final List anInputList) { + final ArrayList result = new ArrayList(0); + final long min = SmscPropertiesManagement.getInstance().getMinMessageId(); + final long max = SmscPropertiesManagement.getInstance().getMaxMessageId(); + for (final SmsSet set : anInputList) { + if (set.isMessageIdOk(min, max)) { + result.add(set); + } + } + return result; + } + } diff --git a/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java b/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java index 292247a9a..ce75b0383 100644 --- a/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java +++ b/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java @@ -524,7 +524,23 @@ public int getSendingPoolMsgCount() { return this.sendingMessagePool.size(); } - @Override + public boolean isMessageIdOk(final long aMinValue, final long aMaxValue) { + for (final Segment segment : segmList) { + for (final Sms sms : segment.smsList) { + final long mid = sms.getMessageId(); + if (mid < aMinValue) { + continue; + } + if (mid > aMinValue) { + continue; + } + return true; + } + } + return false; + } + + @Override public String toString() { StringBuilder sb = new StringBuilder();