You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
これまでは /%expand と */ の間にスペースがある場合にそのスペースを
aliasとみなしてExpandNodeを組み立てていましたが、それが原因で実行時に
AbstractSelectQuery#prepare()でNullPointerExceptionが発生していました。
例えば次のようなSQLが該当します。
SELECT /*%expand */*
FROM Hoge
このSQLを含むSQLファイルに対応したDaoのメソッドを実行すると
NullPointerExceptionが発生します。
次にスタックトレースを抜粋します。
java.lang.NullPointerException
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitExpandNode(NodePreparedSqlBuilder.java:582)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitExpandNode(NodePreparedSqlBuilder.java:82)
at org.seasar.doma.internal.jdbc.sql.node.ExpandNode.accept(ExpandNode.java:63)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitSelectClauseNode(NodePreparedSqlBuilder.java:438)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitSelectClauseNode(NodePreparedSqlBuilder.java:82)
at org.seasar.doma.internal.jdbc.sql.node.SelectClauseNode.accept(SelectClauseNode.java:40)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitSelectStatementNode(NodePreparedSqlBuilder.java:428)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitSelectStatementNode(NodePreparedSqlBuilder.java:82)
at org.seasar.doma.internal.jdbc.sql.node.SelectStatementNode.accept(SelectStatementNode.java:124)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitAnonymousNode(NodePreparedSqlBuilder.java:146)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.visitAnonymousNode(NodePreparedSqlBuilder.java:82)
at org.seasar.doma.internal.jdbc.sql.node.AnonymousNode.accept(AnonymousNode.java:35)
at org.seasar.doma.internal.jdbc.sql.NodePreparedSqlBuilder.build(NodePreparedSqlBuilder.java:137)
at org.seasar.doma.jdbc.query.SqlFileSelectQuery.lambda$prepareSql$13(SqlFileSelectQuery.java:51)
at org.seasar.doma.jdbc.query.SqlFileSelectQuery$$Lambda$6/1027007693.apply(Unknown Source)
at org.seasar.doma.jdbc.query.AbstractSelectQuery.buildSql(AbstractSelectQuery.java:113)
at org.seasar.doma.jdbc.query.SqlFileSelectQuery.prepareSql(SqlFileSelectQuery.java:47)
at org.seasar.doma.jdbc.query.AbstractSelectQuery.prepare(AbstractSelectQuery.java:90)
at org.seasar.doma.jdbc.query.SqlFileSelectQuery.prepare(SqlFileSelectQuery.java:39)
この問題を解決するため /*%expand と */ の間にスペースのみがある場合は
aliasとみなさないように修正しました。
0 commit comments