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
>
>