\r
private static final long serialVersionUID = 1L;\r
private static ValidatorFactory factory;\r
+ private static Boolean implementationAvailable = null;\r
\r
private transient javax.validation.Validator javaxBeanValidator;\r
private String propertyName;\r
*/\r
public static BeanValidationValidator addValidator(Field field,\r
Object objectPropertyId, Class<?> beanClass) {\r
+ if (objectPropertyId == null || !(objectPropertyId instanceof String)) {\r
+ throw new IllegalArgumentException("Property id must be a non-null String");\r
+ }\r
+\r
String propertyId = (String) objectPropertyId;\r
BeanValidationValidator validator = new BeanValidationValidator(\r
beanClass, propertyId);\r
List<String> exceptions = new ArrayList<String>();\r
for (Object v : violations) {\r
final ConstraintViolation<?> violation = (ConstraintViolation<?>) v;\r
- String msg = getJavaxBeanValidatorFactory().getMessageInterpolator().interpolate(\r
- violation.getMessageTemplate(),\r
- new SimpleContext(value, violation\r
- .getConstraintDescriptor()), locale);\r
+ String msg = getJavaxBeanValidatorFactory()\r
+ .getMessageInterpolator().interpolate(\r
+ violation.getMessageTemplate(),\r
+ new SimpleContext(value, violation\r
+ .getConstraintDescriptor()), locale);\r
exceptions.add(msg);\r
}\r
StringBuilder b = new StringBuilder();\r
throw new InvalidValueException(\r
"Annotation must have message attribute");\r
}\r
- String msg = getJavaxBeanValidatorFactory().getMessageInterpolator().interpolate(\r
- messageTemplate, new SimpleContext(value, d), locale);\r
+ String msg = getJavaxBeanValidatorFactory()\r
+ .getMessageInterpolator().interpolate(messageTemplate,\r
+ new SimpleContext(value, d), locale);\r
exceptions.add(msg);\r
}\r
}\r
}\r
\r
public static boolean isImplementationAvailable() {\r
- try {\r
- getJavaxBeanValidatorFactory();\r
- return true;\r
- } catch (Exception e) {\r
- return false;\r
+ if (implementationAvailable == null) {\r
+ try {\r
+ getJavaxBeanValidatorFactory();\r
+ implementationAvailable = true;\r
+ } catch (Exception e) {\r
+ implementationAvailable = false;\r
+ }\r
}\r
+ return implementationAvailable;\r
}\r
}
\ No newline at end of file