Just to be sure I'm not missing something. the following if condition couldn't possible execute:
if (type != null && type.isAssignableFrom(Expression.class) && !type.isAssignableFrom(Object.class)) The reason being that anything that isAssignableFrom(Expression.class) also isAssignableFrom(Object.class) right? Hans