org_apache_struts_beanvalidation_BeanValidationInterceptorTest_java
org.hibernate.validator.internal.engine.ValidatorImpl
private <T, U> Set<ConstraintViolation<T>> validateInContext(BaseBeanValidationContext<T> validationContext, BeanValueContext<U, Object> valueContext, ValidationOrder validationOrder) {
        Group group;
        if (valueContext.getCurrentBean() == null) {
            return Collections.emptySet();
        }
        BeanMetaData<U> beanMetaData = valueContext.getCurrentBeanMetaData();
        if (beanMetaData.isDefaultGroupSequenceRedefined()) {
            validationOrder.assertDefaultGroupSequenceIsExpandable(beanMetaData.getDefaultGroupSequence(valueContext.getCurrentBean()));
        }
        Iterator<Group> groupIterator = validationOrder.getGroupIterator();
        while (groupIterator.hasNext()) {
            group = groupIterator.next();
            valueContext.setCurrentGroup(group.getDefiningClass());
            this.validateConstraintsForCurrentGroup(validationContext, valueContext);
            if (!this.shouldFailFast(validationContext)) continue;
            return validationContext.getFailingConstraints();
        }
        groupIterator = validationOrder.getGroupIterator();
        while (groupIterator.hasNext()) {
            group = groupIterator.next();
            valueContext.setCurrentGroup(group.getDefiningClass());
            this.validateCascadedConstraints(validationContext, valueContext);
            if (!this.shouldFailFast(validationContext)) continue;
            return validationContext.getFailingConstraints();
        }
        Iterator<Sequence> sequenceIterator = validationOrder.getSequenceIterator();
        block2: while (sequenceIterator.hasNext()) {
            Sequence sequence = sequenceIterator.next();
            for (GroupWithInheritance groupOfGroups : sequence) {
                int numberOfViolations = validationContext.getFailingConstraints().size();
                for (Group group2 : groupOfGroups) {
                    valueContext.setCurrentGroup(group2.getDefiningClass());
                    this.validateConstraintsForCurrentGroup(validationContext, valueContext);
                    if (this.shouldFailFast(validationContext)) {
                        return validationContext.getFailingConstraints();
                    }
                    this.validateCascadedConstraints(validationContext, valueContext);
                    if (!this.shouldFailFast(validationContext)) continue;
                    return validationContext.getFailingConstraints();
                }
                if (validationContext.getFailingConstraints().size() <= numberOfViolations) continue;
                continue block2;
            }
        }
        return validationContext.getFailingConstraints();
    }
 -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.getName(): java.lang.String -> java.lang.Class.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.size(): int -> java.util.List.addAll(java.util.Collection): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int -> java.util.List.hashCode(): int -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int -> java.lang.System.identityHashCode(java.lang.Object): int -> java.util.Set.contains(java.lang.Object): boolean -> java.util.Set.contains(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.size(): int -> java.util.List.addAll(java.util.Collection): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int -> java.util.List.hashCode(): int -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int -> java.lang.System.identityHashCode(java.lang.Object): int -> java.util.Set.contains(java.lang.Object): boolean -> java.util.Set.contains(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int -> java.util.Set.add(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Set.add(java.lang.Object): boolean -> java.util.List.hashCode(): int -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.util.List.equals(java.lang.Object): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.Collections.emptyIterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.util.List.iterator(): java.util.Iterator [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Class.getName(): java.lang.String -> java.lang.Class.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.addAll(java.util.Collection): boolean [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int [CALL] [CALL] -> java.util.List.hashCode(): int [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int [EXIT] [EXIT] [CALL] [CALL] -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.System.identityHashCode(java.lang.Object): int [EXIT] [EXIT] -> java.util.Set.contains(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Set.contains(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.addAll(java.util.Collection): boolean [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int [CALL] [CALL] -> java.util.List.hashCode(): int [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.hashCode(): int -> java.util.Arrays.hashCode(java.lang.Object[]): int [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.System.identityHashCode(java.lang.Object): int [EXIT] [EXIT] -> java.util.Set.contains(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Set.contains(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.lang.System.identityHashCode(java.lang.Object): int -> java.lang.Object.hashCode(): int [EXIT] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Set.add(java.lang.Object): boolean [CALL] [CALL] -> java.util.List.hashCode(): int [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.util.List.equals(java.lang.Object): boolean [CALL] -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Object.getClass(): java.lang.Class -> java.lang.String.equals(java.lang.Object): boolean -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] -> java.util.List.iterator(): java.util.Iterator [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] -> java.util.Collections.emptyIterator(): java.util.Iterator [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT]