Fix consultRules so that it does not bail out on RuntimeException

This problem was causing internal server error in Gerrit GUI on browsing
open changes in case one or more projects had broken rules.pl in meta
config.

Change-Id: Ib1395a5d48abd0150a9b2e0c3680cb39ae186f1a
Signed-off-by: Eryk Szymanski <eryksz@gmail.com>
diff --git a/gerrit-server/src/main/java/com/google/gerrit/rules/RulesCache.java b/gerrit-server/src/main/java/com/google/gerrit/rules/RulesCache.java
index 4a3cd9a..f263bed 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/rules/RulesCache.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/rules/RulesCache.java
@@ -196,14 +196,17 @@
     return pmc;
   }
 
-  private PrologMachineCopy consultRules(String name, Reader rules) {
+  private PrologMachineCopy consultRules(String name, Reader rules)
+      throws CompileException {
     BufferingPrologControl ctl = newEmptyMachine(systemLoader);
     PushbackReader in = new PushbackReader(rules, Prolog.PUSHBACK_SIZE);
-    if (!ctl.execute(
-        Prolog.BUILTIN, "consult_stream",
-        SymbolTerm.intern(name),
-        new JavaObjectTerm(in))) {
-      return null;
+    try {
+      if (!ctl.execute(Prolog.BUILTIN, "consult_stream",
+          SymbolTerm.intern(name), new JavaObjectTerm(in))) {
+        return null;
+      }
+    } catch (RuntimeException e) {
+      throw new CompileException("Error while consulting rules from " + name, e);
     }
     return save(ctl);
   }