Class leafType = (Class) this.leaf.getValueType();
Class leafType = convertToClass(this.leaf.getValueType(), this.leaf);
    public void setToNull() throws EvaluationException {        Object nodeValue = this.bean;        for (NodeEvaluation node = this.root; node != this.leaf && nodeValue != null; node = node.getNext()) {            nodeValue = node.getType().getPropertyAccessor().getValue(node, nodeValue);        }        if (nodeValue != null) {            Class leafType = (Class) this.leaf.getValueType();            if (Map.class.isAssignableFrom(leafType) || Collection.class.isAssignableFrom(leafType)) {                nodeValue = this.leaf.getType().getPropertyAccessor().getValue(this.leaf, nodeValue);                if (nodeValue != null && Map.class.isAssignableFrom(leafType)) {                    ((Map) nodeValue).clear();                }                else if (nodeValue != null && Collection.class.isAssignableFrom(leafType)) {                    ((Collection) nodeValue).clear();                }            }            else {                try {                    Object nvl = ReflectUtil.getDefaultValue(leafType);                    this.leaf.getType().getPropertyAccessor().setValue(this.leaf, nodeValue, nvl);                }                catch (RuntimeException re) { throw re; }                catch (Exception e) {                    throw new EvaluationException("Could not set a null value for property '" +                    this.expression + "' on bean of type " + this.bean.getClass().getName(), e);                }            }        }    }