You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Soks86 <mi...@gmail.com> on 2009/12/14 20:06:44 UTC
Null Pointer Exception on Malformed
Hi,
I was using <foreach> in an <insert> (within a <mapper>) statement and I got
the following NPE:
Caused by: java.lang.NullPointerException
at java.util.regex.Pattern.<init>(Pattern.java:1132)
at java.util.regex.Pattern.compile(Pattern.java:823)
at java.lang.String.replaceFirst(String.java:2146)
at
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext$1.handleToken(ForEachSqlNode.java:116)
at
org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:29)
at
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:121)
at
org.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:18)
at
org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
at
org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode.apply(ForEachSqlNode.java:51)
at
org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
at
org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)
at
org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)
at
org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:45)
at
org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:16)
at
org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:27)
at
org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:192)
at
org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:27)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:65)
at
org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:39)
at
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:93)
... 26 more
This occurred when I didn't specify the item field in my <foreach> tag. Once
I specify item="something" then the NPE goes away. Changing the statement
within the <foreach> did not seem to effect this. Bug?
--
View this message in context: http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26779961.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org
Re: Null Pointer Exception on Malformed
Posted by Clinton Begin <cl...@gmail.com>.
Yep, bug. NPEs are always bugs -- we don't consider them "acceptable". Can
you submit this as a Jira ticket?
Thanks much!
Clinton
On Mon, Dec 14, 2009 at 12:06 PM, Soks86 <mi...@gmail.com>wrote:
>
> Hi,
>
> I was using <foreach> in an <insert> (within a <mapper>) statement and I
> got
> the following NPE:
>
> Caused by: java.lang.NullPointerException
> at java.util.regex.Pattern.<init>(Pattern.java:1132)
> at java.util.regex.Pattern.compile(Pattern.java:823)
> at java.lang.String.replaceFirst(String.java:2146)
> at
>
> org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext$1.handleToken(ForEachSqlNode.java:116)
> at
>
> org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:29)
> at
>
> org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode$FilteredDynamicContext.appendSql(ForEachSqlNode.java:121)
> at
>
> org.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:18)
> at
>
> org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
> at
>
> org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode.apply(ForEachSqlNode.java:51)
> at
>
> org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
> at
>
> org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)
> at
>
> org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)
> at
>
> org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:45)
> at
>
> org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:16)
> at
>
> org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:27)
> at
>
> org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:192)
> at
> org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:27)
> at
> org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:65)
> at
> org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:39)
> at
>
> org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:93)
> ... 26 more
>
> This occurred when I didn't specify the item field in my <foreach> tag.
> Once
> I specify item="something" then the NPE goes away. Changing the statement
> within the <foreach> did not seem to effect this. Bug?
> --
> View this message in context:
> http://old.nabble.com/Null-Pointer-Exception-on-Malformed-%3Cforeach%3E-tp26779961p26779961.html
> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>