Fix crashes on empty reply in context requests
Resolved a crash issue where ChatGPT could return an empty reply set
when requesting context using the ON_DEMAND policy. Now, if an empty
reply is received, a default "CONTEXT NOT PROVIDED" context information
is sent to ChatGPT instead.
Change-Id: Id894a1eee1108bcbf68777d725413e179ecec69b
Signed-off-by: Patrizio <patrizio.gelosi@amarulasolutions.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/code/context/ondemand/CodeContextBuilder.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/code/context/ondemand/CodeContextBuilder.java
index 6e9b201..f09d62c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/code/context/ondemand/CodeContextBuilder.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/code/context/ondemand/CodeContextBuilder.java
@@ -32,8 +32,12 @@
public String buildCodeContext(ChatGptGetContextContent getContextContent) {
log.debug("Building code context for {}", getContextContent);
+ List<ChatGptGetContextItem> replies = getContextContent.getReplies();
+ if (replies == null || replies.isEmpty()) {
+ return CONTEXT_NOT_PROVIDED;
+ }
List<GetContextOutputItem> getContextOutput = new ArrayList<>();
- for (ChatGptGetContextItem chatGptGetContextItem : getContextContent.getReplies()) {
+ for (ChatGptGetContextItem chatGptGetContextItem : replies) {
IEntityLocator entityLocator;
try {
entityLocator = getEntityLocator(chatGptGetContextItem, config, change, gitRepoFiles);