in bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java [309:337]
public void handleProperty(String name) {
final PathImpl p = PathImpl.copy(pathBuilder.result());
pathBuilder.handleProperty(name);
findDescriptor.handleProperty(name);
if (reachable.get().booleanValue()) {
try {
reachable.accept(validatorContext.getTraversableResolver().isReachable(value.get(),
pathBuilder.result().getLeafNode(), rootBeanClass, p,
findDescriptor.result().getElementType()));
} catch (ValidationException ve) {
throw ve;
} catch (Exception e) {
throw new ValidationException(e);
}
}
if (reachable.get().booleanValue() && value.optional().isPresent() && recordLeaf != null) {
recordLeaf.accept(p, value.get());
final PropertyD<?> propertyD =
ComposedD.unwrap(findDescriptor.current.element(), PropertyD.class).findFirst().get();
try {
value.accept(propertyD.getValue(value.get()));
} catch (Exception e) {
Exceptions.raise(IllegalStateException::new, e, "Unable to get value of property %s",
propertyD.getPropertyName());
}
}
}