public static Object compileAndEvaluate(ReadGraph graph, Variable context) throws DatabaseException {\r
SCLContext sclContext = SCLContext.getCurrent();\r
Object oldGraph = sclContext.get("graph");\r
+ CompileStructuralValueRequest request = new CompileStructuralValueRequest(graph, context);\r
try {\r
- Function1<Variable,Object> exp = graph.syncRequest(new CompileStructuralValueRequest(graph, context),\r
- TransientCacheListener.<Function1<Variable,Object>>instance());\r
+ Function1<Variable,Object> exp = graph.syncRequest(request, TransientCacheListener.<Function1<Variable,Object>>instance());\r
sclContext.put("graph", graph);\r
return exp.apply(context);\r
- } catch (DatabaseException e) {\r
- throw (DatabaseException)e;\r
} catch (Throwable t) {\r
- throw new DatabaseException(t);\r
+ throw new DatabaseException("Compiling structural value request for component=" + request.component + ", literal=" + request.literal + " and relation " + request.relation + " failed!", t);\r
} finally {\r
sclContext.put("graph", oldGraph);\r
}\r