Skip to content

Commit 93c8d6e

Browse files
committed
fix: Safely handle empty model in GoogleSearchTool request processor
1 parent 2c1b7ab commit 93c8d6e

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

core/src/main/java/com/google/adk/tools/GoogleSearchTool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public Completable processLlmRequest(
6161
ImmutableList.Builder<Tool> updatedToolsBuilder = ImmutableList.builder();
6262
updatedToolsBuilder.addAll(existingTools);
6363

64-
String model = llmRequestBuilder.build().model().get();
64+
String model = llmRequestBuilder.build().model().orElse(null);
6565
if (model != null && (model.startsWith("gemini-2") || model.startsWith("gemini-3"))) {
6666

6767
updatedToolsBuilder.add(Tool.builder().googleSearch(GoogleSearch.builder().build()).build());

core/src/test/java/com/google/adk/tools/BaseToolTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.google.adk.tools;
22

33
import static com.google.common.truth.Truth.assertThat;
4+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
45

56
import com.fasterxml.jackson.core.type.TypeReference;
67
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -354,5 +355,16 @@ public void runAsync_withClassAndObjectMapper_convertsArguments() throws Excepti
354355
testObserver.assertValue(expected);
355356
}
356357

358+
@Test
359+
public void testProcessLlmRequest_WithNoModel_DoesNotThrowsException() {
360+
GoogleSearchTool tool = GoogleSearchTool.INSTANCE;
361+
LlmRequest.Builder requestBuilder = LlmRequest.builder();
362+
363+
assertDoesNotThrow(
364+
() -> {
365+
tool.processLlmRequest(requestBuilder, null);
366+
});
367+
}
368+
357369
public record TestToolArgs(int i, String s) {}
358370
}

0 commit comments

Comments
 (0)