-
Notifications
You must be signed in to change notification settings - Fork 13
Description
【如果AI返回的 JSON 响应中没有 tool_calls 字段,则报错:java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because "toolCalls" is null】
具体log如下:
[2025-05-13T14:48:01.914+08:00] [ChatGPT request executor-1[com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTask@22010513]] INFO com.googlesource.gerrit.plugins.aicodereview.mode.stateless.client.api.chatai.AIChatClientStateless : Chat response body: {"choices":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"json\n{\n \"replies\": [\n {\n \"reply\": \"删除的`msg_process`函数未被替代或迁移,可能导致功能缺失。\",\n \"score\": -1,\n \"relevance\": 0.8,\n \"repeated\": false,\n \"conflicting\": false,\n \"filename\": \"application/system/hsm_service/hsm_service.c\",\n \"lineNumber\": 3,\n \"codeSnippet\": \"static int msg_process(void)\\n{\\n return 0;\\n}\"\n },\n {\n \"reply\": \"条件逻辑从嵌套的`else if`改为独立的`if`,可能改变原有逻辑流程,需验证是否影响预期行为。\",\n \"score\": -1,\n \"relevance\": 0.7,\n \"repeated\": false,\n \"conflicting\": false,\n \"filename\": \"application/system/hsm_service/hsm_service.c\",\n \"lineNumber\": 10,\n \"codeSnippet\": \"if (len == sizeof(hsm_req_t)) {\\n hsm_main(cpuid, (hsm_req_t *)rx_buf, (hsm_resp_t *)tx_buf, hsm_mem_diff_table[cpuid]);\\n sample_process(chan, tx_buf, \u0026src, sizeof(hsm_resp_t));\\n continue;\\n }\"\n },\n {\n \"reply\": \"移除`msg_process`的调用可能导致未处理的遗留消息,需确认是否有替代处理逻辑。\",\n \"score\": -1,\n \"relevance\": 0.8,\n \"repeated\": false,\n \"conflicting\": false,\n \"filename\": \"application/system/hsm_service/hsm_service.c\",\n \"lineNumber\": 20,\n \"codeSnippet\": \"msg_process();\\n }\\n\\n ipcc_channel_stop(chan);\\n ipcc_channel_destroy(chan);\"\n }\n ],\n \"changeId\": \"lk_customize~X9_PTG6.0~I74bb42b980ccace3b548df1c3bdfc6582f66b30b\"\n}\n","role":"assistant"}}],"created":1747118881,"id":"021747118859242c51df1b11f9466da946dd9bf1ba1370f1e9884","model":"deepseek-v3-250324","service_tier":"default","object":"chat.completion","usage":{"completion_tokens":468,"prompt_tokens":1173,"total_tokens":1641,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}}
[2025-05-13T14:48:01.917+08:00] [ChatGPT request executor-1[com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTask@22010513]] ERROR com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTask : Error while processing change: lk_customizeX9_PTG6.0I74bb42b980ccace3b548df1c3bdfc6582f66b30b
java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because "toolCalls" is null
at com.googlesource.gerrit.plugins.aicodereview.mode.common.client.api.openai.AIChatClient.getResponseContent(AIChatClient.java:100)
at com.googlesource.gerrit.plugins.aicodereview.mode.common.client.api.openai.AIChatClient.extractContent(AIChatClient.java:56)
at com.googlesource.gerrit.plugins.aicodereview.mode.stateless.client.api.chatai.AIChatClientStateless.ask(AIChatClientStateless.java:79)
at com.googlesource.gerrit.plugins.aicodereview.PatchSetReviewer.getReviewReply(PatchSetReviewer.java:217)
at com.googlesource.gerrit.plugins.aicodereview.PatchSetReviewer.review(PatchSetReviewer.java:108)
at com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTypePatchSetReview.processEvent(EventHandlerTypePatchSetReview.java:71)
at com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTask.execute(EventHandlerTask.java:116)
at com.googlesource.gerrit.plugins.aicodereview.listener.EventHandlerTask.run(EventHandlerTask.java:103)
at com.google.gerrit.server.logging.LoggingContextAwareRunnable.run(LoggingContextAwareRunnable.java:113)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:699)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)