-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Open
Description
I was testing Spring Ai 2.0.0-M2 with the tool calling example of the documentatation:
class DateTimeTools {
@Tool(description = "Get the current date and time in the user's timezone")
String getCurrentDateTime() {
return LocalDateTime.now().atZone(LocaleContextHolder.getTimeZone().toZoneId()).toString();
}
@Tool(description = "Set a user alarm for the given time, provided in ISO-8601 format")
void setAlarm(String time) {
LocalDateTime alarmTime = LocalDateTime.parse(time, DateTimeFormatter.ISO_DATE_TIME);
System.out.println("Alarm set for " + alarmTime);
}
}
And I experienced this error one time:
2026-02-11T19:43:38.904-03:00[0;39m [31mERROR[0;39m [35m66192[0;39m [2m--- [spring-ai-api] [io-8080-exec-10] [0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.RuntimeException: Failed to parse JSON: Text '19:52:00' could not be parsed at index 0] with root cause
com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'Text': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 5]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2599) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2625) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2633) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:831) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:3017) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2051) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:780) ~[jackson-core-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:5125) ~[jackson-databind-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:5028) ~[jackson-databind-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3954) ~[jackson-databind-2.20.2.jar:2.20.2]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3922) ~[jackson-databind-2.20.2.jar:2.20.2]
at org.springframework.ai.google.genai.GoogleGenAiChatModel.parseJsonToMap(GoogleGenAiChatModel.java:378) ~[spring-ai-google-genai-2.0.0-M2.jar:2.0.0-M2]
at org.springframework.ai.google.genai.GoogleGenAiChatModel.lambda$messageToGeminiParts$0(GoogleGenAiChatModel.java:337) ~[spring-ai-google-genai-2.0.0-M2.jar:2.0.0-M2]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214) ~[na:na]
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:635) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:291) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:652) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:658) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:663) ~[na:na]
at org.springframework.ai.google.genai.GoogleGenAiChatModel.messageToGeminiParts(GoogleGenAiChatModel.java:340) ~[spring-ai-google-genai-2.0.0-M2.jar:2.0.0-M2]
at org.springframework.ai.google.genai.GoogleGenAiChatModel.lambda$toGeminiContent$0(GoogleGenAiChatModel.java:888) ~[spring-ai-google-genai-2.0.0-M2.jar:2.0.0-M2]
at java.base/java.util.stream.ReferencePipeline$3$1.accept
Reactions are currently unavailable