diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Profile.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Profile.java
index f080de2..8ab43c2 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Profile.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Profile.java
@@ -9,6 +9,7 @@ import br.ufrgs.inf.prosoft.requestssimulator.requests.RequestPlan;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
@@ -71,7 +72,11 @@ public class Profile {
}
public void execute() {
- this.sessions.forEach(Session::execute);
+ for (Iterator<Session> iterator = this.sessions.iterator(); iterator.hasNext();) {
+ Session session = iterator.next();
+ session.execute();
+ iterator.remove();
+ }
}
@Override
diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Session.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Session.java
index d4c161b..54ba839 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Session.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Session.java
@@ -10,6 +10,7 @@ import br.ufrgs.inf.prosoft.requestssimulator.requests.RequestPlan;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -67,7 +68,11 @@ public class Session {
}
public void execute() {
- this.requests.forEach(Request::fire);
+ for (Iterator<Request> iterator = this.requests.iterator(); iterator.hasNext();) {
+ Request request = iterator.next();
+ request.fire();
+ iterator.remove();
+ }
}
public Request pickNextRequest(Request currentRequest) {