File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed
main/java/net/sf/jsqlparser/expression
test/java/net/sf/jsqlparser/expression Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -213,8 +213,10 @@ public void visit(Column column) {
213213 @ Override
214214 public void visit (SubSelect subSelect ) {
215215 if (selectVisitor != null ) {
216- for (WithItem item : subSelect .getWithItemsList ()) {
217- item .accept (selectVisitor );
216+ if (subSelect .getWithItemsList () != null ) {
217+ for (WithItem item : subSelect .getWithItemsList ()) {
218+ item .accept (selectVisitor );
219+ }
218220 }
219221 subSelect .getSelectBody ().accept (selectVisitor );
220222 }
Original file line number Diff line number Diff line change 2727import net .sf .jsqlparser .schema .Column ;
2828import net .sf .jsqlparser .statement .select .PlainSelect ;
2929import net .sf .jsqlparser .statement .select .Select ;
30+ import net .sf .jsqlparser .statement .select .SelectVisitorAdapter ;
3031import org .junit .After ;
3132import org .junit .AfterClass ;
3233import static org .junit .Assert .assertNotNull ;
3334import static org .junit .Assert .assertNull ;
3435import static org .junit .Assert .assertTrue ;
3536import static org .junit .Assert .assertFalse ;
3637import static org .junit .Assert .assertEquals ;
38+ import static org .junit .Assert .fail ;
3739import org .junit .Before ;
3840import org .junit .BeforeClass ;
3941import org .junit .Test ;
@@ -169,4 +171,19 @@ public void visit(Column column) {
169171 assertEquals (1 , columnList .size ());
170172 assertEquals ("bar" , columnList .get (0 ));
171173 }
174+
175+ @ Test
176+ public void testSubSelectExpressionProblem () throws JSQLParserException {
177+ Select select = (Select ) CCJSqlParserUtil .parse ( "SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t2.col2 = t1.col1)" );
178+ PlainSelect plainSelect = (PlainSelect ) select .getSelectBody ();
179+ Expression where = plainSelect .getWhere ();
180+ ExpressionVisitorAdapter adapter = new ExpressionVisitorAdapter ();
181+ adapter .setSelectVisitor (new SelectVisitorAdapter ());
182+ try {
183+ where .accept (adapter );
184+ } catch (NullPointerException npe ){
185+ fail ();
186+ }
187+ }
188+
172189}
You can’t perform that action at this time.
0 commit comments