From 8008d300a1fb3d97fdc776b9ff01b6fd0b4b95cd Mon Sep 17 00:00:00 2001 From: yong <12374011@163.com> Date: Tue, 24 Aug 2021 22:09:05 +0800 Subject: [PATCH] SimpleCondion npe bug fix --- .../relational/core/sql/AbstractSegment.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/AbstractSegment.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/AbstractSegment.java index 7f567ca627..9ebf26497e 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/AbstractSegment.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/AbstractSegment.java @@ -17,6 +17,9 @@ import org.springframework.util.Assert; +import java.util.ArrayList; +import java.util.List; + /** * Abstract implementation to support {@link Segment} implementations. * @@ -28,9 +31,22 @@ abstract class AbstractSegment implements Segment { private final Segment[] children; protected AbstractSegment(Segment... children) { - this.children = children; + this.children = toSegmentArray(children); } + private Segment[] toSegmentArray(Segment... children) { + List list = new ArrayList<>(); + if (children != null) { + for (Segment child : children) { + if (child != null) { + list.add(child); + } + } + } + return list.toArray(new Segment[list.size()]); + } + + /* * (non-Javadoc) * @see org.springframework.data.relational.core.sql.Visitable#visit(org.springframework.data.relational.core.sql.Visitor)