As far as I can tell there is a bug in ExpressionFactory.*matchAllExp*(java.util.Map map, int type).

With a map of keys and values, an exception will always arise here:

Thread [main] (Suspended) ASTAnd(AggregateConditionNode).jjtAddChild(Node, int) line: 120 ASTAnd(SimpleNode).setOperand(int, Object) line: 187 ExpressionFactory.matchAllExp(Map, int) line: 298

jjtAddChild throws an exception whenNode is not of type ConditionNode or AggregateConditionNode. However, the Node parameter is just the Object parameter from setOperand, which is called from matchAllExp as:

exp.setOperand(0, new ASTObjPath(entry.getKey()));

Where entry.getKey() is the object path (in my case just the name of an object attribute). ASTObjPath is not of the correct type, so an exception is thrown everytime, regardless of what entry.getKey() happens to be.

Folks with more experience? I'll try just stringing my own expression together for now.

Marcel

Reply via email to