HHH-15744 HQL where clause parsing fails with StackOverflow exception

This commit is contained in:
Andrea Boriero 2022-12-05 13:14:35 +01:00 committed by Andrea Boriero
parent 5a89c34127
commit c29f2eaf60

View File

@ -850,8 +850,9 @@ public SqmWhereClause visitWhereClause(SqmWhereClause whereClause) {
@Override @Override
public SqmGroupedPredicate visitGroupedPredicate(SqmGroupedPredicate predicate) { public SqmGroupedPredicate visitGroupedPredicate(SqmGroupedPredicate predicate) {
final SqmPredicate subPredicate = (SqmPredicate) predicate.getSubPredicate().accept( this );
return new SqmGroupedPredicate( return new SqmGroupedPredicate(
(SqmPredicate) predicate.accept( this ), subPredicate,
getCreationContext().getNodeBuilder() getCreationContext().getNodeBuilder()
); );
} }
@ -962,25 +963,14 @@ public SqmSortSpecification visitSortSpecification(SqmSortSpecification sortSpec
); );
} }
@Override @Override
public SqmPositionalParameter visitPositionalParameterExpression(SqmPositionalParameter<?> expression) { public SqmPositionalParameter visitPositionalParameterExpression(SqmPositionalParameter<?> expression) {
return new SqmPositionalParameter( return expression;
expression.getPosition(),
expression.allowMultiValuedBinding(),
expression.nodeBuilder()
);
} }
@Override @Override
public SqmNamedParameter visitNamedParameterExpression(SqmNamedParameter<?> expression) { public SqmNamedParameter visitNamedParameterExpression(SqmNamedParameter<?> expression) {
return new SqmNamedParameter( return expression;
expression.getName(),
expression.allowMultiValuedBinding(),
expression.getNodeType(),
expression.nodeBuilder()
);
} }
@Override @Override