@Test
public void testMvelCompileNullSafeNullSecond() {
String expression = "((parentGroup != null) && ($.?child.firstName in parentGroup.parentList if $.?child.firstName != null).size() > 0)";
ExpressionCompiler compiler = new ExpressionCompiler(expression, true);
CompiledExpression compiledExpression = compiler.compile();
Child child = new Child();
child.setFirstName("vlaa");
ParentGroup pGroup = new ParentGroup();
List<Parent> list = new ArrayList<Parent>();
Parent parent = new Parent();
parent.setChild(child);
list.add(parent);
child = new Child();
child.setFirstName(null);
parent = new Parent();
parent.setChild(child);
list.add(parent);
pGroup.setParentList(list);
Boolean result = (Boolean)MVEL.executeExpression(compiledExpression, Collections.<String, Object>singletonMap("parentGroup", pGroup));
assert result == true;
pGroup = new ParentGroup();
list = new ArrayList<Parent>();
parent = new Parent();
parent.setChild(null);
list.add(parent);
pGroup.setParentList(list);
result = (Boolean)MVEL.executeExpression(compiledExpression, Collections.<String, Object>singletonMap("parentGroup", pGroup));
assert result == false;
}