Merge "Fix consultRules so that it does not bail out on RuntimeException" into stable-2.9

This commit is contained in:
Edwin Kempin 2014-06-23 12:24:21 +00:00 committed by Gerrit Code Review
commit 22da0b0a08
1 changed files with 9 additions and 6 deletions

View File

@ -196,14 +196,17 @@ public class RulesCache {
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);
}