File tree Expand file tree Collapse file tree
restcomm/restcomm.sms/src
main/java/org/restcomm/connect/sms/smpp
test/java/org/restcomm/connect/sms/smpp Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1919 */
2020package org .restcomm .connect .sms .smpp ;
2121
22+ import java .util .ArrayList ;
2223import java .util .List ;
2324import org .apache .commons .lang .StringUtils ;
2425import org .restcomm .connect .dao .entities .IncomingPhoneNumber ;
@@ -34,13 +35,20 @@ public class RegexRemover {
3435 * @param numbers
3536 */
3637 static void removeRegexes (List <IncomingPhoneNumber > numbers ) {
38+ //use a list to prevent conc access during iteration
39+ List <IncomingPhoneNumber > toBeRemoved = new ArrayList ();
3740 if (numbers != null ) {
38- for (int i = 0 ; i < numbers .size (); i ++) {
39- IncomingPhoneNumber nAux = numbers .get (i );
41+ for (IncomingPhoneNumber nAux : numbers ) {
4042 if (StringUtils .containsAny (nAux .getPhoneNumber (), REGEX_SPECIAL_CHARS )) {
41- numbers .remove (i );
43+ //mark this as to be removed later
44+ toBeRemoved .add (nAux );
4245 }
4346 }
47+ //finally remove regexes
48+ for (IncomingPhoneNumber nAux : toBeRemoved ) {
49+ //this is relying on Java default equals IncomingPhoneNumber
50+ numbers .remove (nAux );
51+ }
4452 }
4553 }
4654}
Original file line number Diff line number Diff line change @@ -74,6 +74,8 @@ public void testRemover() {
7474 numbers .add (builder .build ());
7575 builder .setPhoneNumber ("+1234*" );
7676 numbers .add (builder .build ());
77+ builder .setPhoneNumber ("+1234.*" );
78+ numbers .add (builder .build ());
7779 builder .setPhoneNumber ("9887" );
7880 numbers .add (builder .build ());
7981 builder .setPhoneNumber ("+" );
You can’t perform that action at this time.
0 commit comments