Skip to content

Commit f1804c9

Browse files
committed
Fix test_task_history_length
1 parent 0e033fc commit f1804c9

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/main/java/io/a2a/server/requesthandlers/DefaultRequestHandler.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import static io.a2a.util.AsyncUtils.createTubeConfig;
55
import static io.a2a.util.AsyncUtils.processor;
66

7+
import java.util.ArrayList;
78
import java.util.Collections;
89
import java.util.HashMap;
10+
import java.util.List;
911
import java.util.Map;
1012
import java.util.Objects;
1113
import java.util.concurrent.Executor;
@@ -30,9 +32,11 @@
3032
import io.a2a.server.tasks.ResultAggregator;
3133
import io.a2a.server.tasks.TaskManager;
3234
import io.a2a.server.tasks.TaskStore;
35+
import io.a2a.spec.Artifact;
3336
import io.a2a.spec.EventKind;
3437
import io.a2a.spec.InternalError;
3538
import io.a2a.spec.JSONRPCError;
39+
import io.a2a.spec.Message;
3640
import io.a2a.spec.MessageSendParams;
3741
import io.a2a.spec.PushNotificationConfig;
3842
import io.a2a.spec.StreamingEventKind;
@@ -85,6 +89,21 @@ public Task onGetTask(TaskQueryParams params) throws JSONRPCError {
8589
log.debug("No task found for {}. Throwing TaskNotFoundError", params.id());
8690
throw new TaskNotFoundError();
8791
}
92+
if (params.historyLength() != null && task.getHistory() != null && params.historyLength() < task.getHistory().size()) {
93+
List<Message> history;
94+
if (params.historyLength() <= 0) {
95+
history = new ArrayList<>();
96+
} else {
97+
history = task.getHistory().subList(
98+
task.getHistory().size() - params.historyLength(),
99+
task.getHistory().size() - 1);
100+
}
101+
102+
task = new Task.Builder(task)
103+
.history(history)
104+
.build();
105+
}
106+
88107
log.debug("Task found {}", task);
89108
return task;
90109
}

0 commit comments

Comments
 (0)