Skip to content

Commit 0b5ac92

Browse files
google-genai-botcopybara-github
authored andcommitted
fix: change Session events list to a threadsafe implementation by default
Session appends to event, so any readers of events will get a ConcurrentModificationException. PiperOrigin-RevId: 875914576
1 parent 313ce85 commit 0b5ac92

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

core/src/main/java/com/google/adk/sessions/Session.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.time.Duration;
2626
import java.time.Instant;
2727
import java.util.ArrayList;
28+
import java.util.Collections;
2829
import java.util.List;
2930
import java.util.concurrent.ConcurrentHashMap;
3031
import java.util.concurrent.ConcurrentMap;
@@ -54,7 +55,7 @@ public static final class Builder {
5455
private String appName;
5556
private String userId;
5657
private State state = new State(new ConcurrentHashMap<>());
57-
private List<Event> events = new ArrayList<>();
58+
private List<Event> events = Collections.synchronizedList(new ArrayList<>());
5859
private Instant lastUpdateTime = Instant.EPOCH;
5960

6061
public Builder(String id) {
@@ -101,7 +102,7 @@ public Builder userId(String userId) {
101102
@CanIgnoreReturnValue
102103
@JsonProperty("events")
103104
public Builder events(List<Event> events) {
104-
this.events = events;
105+
this.events = Collections.synchronizedList(events);
105106
return this;
106107
}
107108

0 commit comments

Comments
 (0)