diff --git a/auto-configurations/models/tool/spring-ai-autoconfigure-model-tool/src/main/java/org/springframework/ai/model/tool/autoconfigure/ToolCallingAutoConfiguration.java b/auto-configurations/models/tool/spring-ai-autoconfigure-model-tool/src/main/java/org/springframework/ai/model/tool/autoconfigure/ToolCallingAutoConfiguration.java index 40e5336e473..a7dfbc74f40 100644 --- a/auto-configurations/models/tool/spring-ai-autoconfigure-model-tool/src/main/java/org/springframework/ai/model/tool/autoconfigure/ToolCallingAutoConfiguration.java +++ b/auto-configurations/models/tool/spring-ai-autoconfigure-model-tool/src/main/java/org/springframework/ai/model/tool/autoconfigure/ToolCallingAutoConfiguration.java @@ -126,10 +126,19 @@ ToolCallingContentObservationFilter toolCallingContentObservationFilter() { private static Class getClassOrNull(String className) { try { - return (Class) ClassUtils.forName(className, null); + Class clazz = ClassUtils.forName(className, null); + if (RuntimeException.class.isAssignableFrom(clazz)) { + return (Class) clazz; + } + else { + logger.debug("Class {} is not a subclass of RuntimeException", className); + } } catch (ClassNotFoundException e) { - logger.debug("Cannot load class", e); + logger.debug("Cannot load class: {}", className); + } + catch (Exception e) { + logger.debug("Error loading class: {}", className, e); } return null; }