@@ -395,10 +395,10 @@ public void removeRxFilters(int portIndex, int profileId) {
395395 */
396396 public void waitOnTrafficToFinish (int timeoutInSecounds , int rxDelayMs , Port ... ports ) {
397397 long endTime = System .currentTimeMillis () + timeoutInSecounds * 1000 ;
398- List <Port > portsNotIdleYet = new ArrayList <>(Arrays .asList (ports ));
398+ List <Port > portsStillSendingTraffic = new ArrayList <>(Arrays .asList (ports ));
399399
400- while (!portsNotIdleYet .isEmpty ()) {
401- Iterator <Port > iter = portsNotIdleYet .iterator ();
400+ while (!portsStillSendingTraffic .isEmpty ()) {
401+ Iterator <Port > iter = portsStillSendingTraffic .iterator ();
402402 while (iter .hasNext ()) {
403403 if (getPortStatus (iter .next ().getIndex ()).get ().getState () != "TX" ) {
404404 iter .remove ();
@@ -407,6 +407,9 @@ public void waitOnTrafficToFinish(int timeoutInSecounds, int rxDelayMs, Port...
407407 if (System .currentTimeMillis () > endTime ) {
408408 break ;
409409 }
410+ if (!portsStillSendingTraffic .isEmpty ()) {
411+ sleepMilliSecounds (10 );
412+ }
410413 }
411414
412415 removeRxFiltersWithDelay (rxDelayMs , ports );
@@ -430,17 +433,21 @@ protected void removeRxFiltersWithDelay(int rxDelayMs, Port... ports) {
430433 rxDelayToUse = rxDelayMs ;
431434 }
432435
433- try {
434- Thread .sleep (rxDelayToUse );
435- } catch (InterruptedException e ) {
436- // Do nothing
437- }
436+ sleepMilliSecounds (rxDelayToUse );
438437
439438 for (Port port : ports ) {
440439 removeRxFilters (port .getIndex (), 0 );
441440 }
442441 }
443442
443+ protected void sleepMilliSecounds (int secounds ) {
444+ try {
445+ Thread .sleep (secounds );
446+ } catch (InterruptedException e ) {
447+ // Do nothing
448+ }
449+ }
450+
444451 /** Set promiscuous mode, Enable interface to receive packets from all mac addresses */
445452 public void setPromiscuousMode (int portIndex , boolean enabled ) {
446453 Map <String , Object > payload = createPayload (portIndex );
0 commit comments