From 7530360d9b8fa19d4e8bf239cbd2c2793cc3b5de Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Wed, 12 Jan 2022 12:16:10 +0100 Subject: PrologRuleEvaluator: Fix endless loop on type error If a Prolog rule fails to load and PrologOptions#logErrors() is true (which is e.g. the case if the request is being traced) there was an endless loop in PrologRuleEvaluator: 1. typeError(String, Exception) is invoked which logs the exception and then calls typeError(String) with DEFAULT_MSG as parameter 2. typeError(String) delegates to typeError(String, Exception) with the exception parameter being null which brings us back to 1. The issue was introduced by change I018ce9e13. Signed-off-by: Edwin Kempin Change-Id: Ie922c8db1ffa51275865f7dfe3432462995b5c84 Release-Notes: Fix endless loop when handling Prolog type errors --- java/com/google/gerrit/server/rules/PrologRuleEvaluator.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java b/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java index 3dc5be06de..95e0829744 100644 --- a/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java +++ b/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java @@ -396,7 +396,6 @@ public class PrologRuleEvaluator { private SubmitTypeRecord typeError(String err, Exception e) { if (opts.logErrors()) { logger.atSevere().withCause(e).log(err); - return typeError(DEFAULT_MSG); } return SubmitTypeRecord.error(err); } -- cgit v1.2.3