This method is the real culprit, is not handling Date condition and hence returning CANT_INSTANTIATE_CLASS_ERROR_MESSAGE_ID. private Object getConvertedValueConsideringPrimitives(Object value, Class valueType) throws FacesException { if (null != value && null != valueType) { if (valueType == Boolean.TYPE || valueType == java.lang.Boolean.class) { value = value.toString().toLowerCase().equals("true") ? Boolean.TRUE : Boolean.FALSE; } else if (valueType == Byte.TYPE || valueType == java.lang.Byte.class) { value ...