X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fscl%2FAbstractExpressionCompilationRequest.java;h=8d364c737bdc5dc3070b59ccbb412a3ad73ff5ca;hp=3a95f25304f78248cde70c51fdd4eb127ff39d9c;hb=04bf1d8e31c85530bcd47d41051362533997134e;hpb=1efdd1cea0fcef60df0267f23e4ffda9fab5b23d diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/scl/AbstractExpressionCompilationRequest.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/scl/AbstractExpressionCompilationRequest.java index 3a95f2530..8d364c737 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/scl/AbstractExpressionCompilationRequest.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/scl/AbstractExpressionCompilationRequest.java @@ -147,6 +147,13 @@ implements Read> { protected boolean parseAsBlock() { return false; } + + /* + * Override this to provide location information in compilation error situations. + */ + protected String getContextDescription(ReadGraph graph) throws DatabaseException { + return toString(); + } @SuppressWarnings("unchecked") private Function1 eval(ExpressionEvaluator evaluator, ReadGraph graph) throws DatabaseException { @@ -163,14 +170,17 @@ implements Read> { StringBuilder b = new StringBuilder(); b.append("Couldn't compile '"); b.append(evaluator.getExpressionText()); + b.append("' in "); + b.append(getContextDescription(graph)); b.append("':\n"); StringBuilder b2 = new StringBuilder(); for(CompilationError error : e.getErrors()) { b2.append(error.description); b2.append('\n'); } - System.err.println(b.toString() + b2.toString()); - throw new SCLDatabaseException(b.toString()+b2.toString(), b2.toString(), e.getErrors()); + SCLDatabaseException exception = new SCLDatabaseException(b.toString()+b2.toString(), b2.toString(), e.getErrors()); + LOGGER.info(exception.getMessage(), exception); + throw exception; } catch(Throwable e) { // Should not happen! LOGGER.error("This error should never happen", e); @@ -236,4 +246,9 @@ implements Read> { return graph.getPossibleRelatedValue(predicate, L0.RequiresValueType, Bindings.STRING); } + @Override + public abstract int hashCode(); + + @Override + public abstract boolean equals(Object obj); }