ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher.Mathru...@sybase.com
Subject Re: NullPointerException after upgrade to 2.3.2
Date Tue, 15 Jul 2008 18:16:05 GMT
Here are the specifics. It's not very complex which is why it surprised me 
so much.

  <procedure id="getCreditHoldFlag" resultClass="java.lang.Boolean"> 
    { call ${getCreditHoldFlag_sp}  (
        @CustomerNumber = 
#customerNo,jdbcType=VARCHAR,javaType=java.lang.String,mode=IN#
      ) 
    }
  </procedure>


The parameter class is a String and I'm even specifying it in the SQL. 

One question about the patch, is it checked into the main trunk of iBatis? 
I performed a sync but didn't seem to get anything and when I try to build 
from the trunk I get two nasty errors:
[INFO] Compilation failure

s:\iBatis\java\mapper\mapper2\src\com\ibatis\common\jdbc\SimpleDataSource.java:[
52,7] com.ibatis.common.jdbc.SimpleDataSource is not abstract and does not 
overr
ide abstract method isWrapperFor(java.lang.Class) in java.sql.Wrapper

s:\iBatis\java\mapper\mapper2\src\com\ibatis\sqlmap\engine\type\CallableStatemen
tResultSet.java:[29,7] 
com.ibatis.sqlmap.engine.type.CallableStatementResultSet
is not abstract and does not override abstract method 
updateNClob(java.lang.Stri
ng,java.io.Reader) in java.sql.ResultSet



Thanks for the help Clinton..


Chris 



"Clinton Begin" <clinton.begin@gmail.com> 
07/15/2008 11:09 AM
Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org
cc

Subject
Re: NullPointerException after upgrade to 2.3.2






I committed the patch, so you can build from SVN. 

HOWERVER.... I can't for the life of me reproduce the failure.  iBATIS 
usually detects the type of JavaBeans properties and for Maps uses Object 
if it can't figure it out... so type should never really be null.  I can't 
write the failing unit test.

Can you post (or email me directly if you don't want it published) the 
offending statement, result map, parameter map, and stack trace?

Thanks much,
Clinton

On Tue, Jul 15, 2008 at 11:40 AM, <Christopher.Mathrusse@sybase.com> 
wrote:

Thank you Clinton.. 

Chris 


"Clinton Begin" <clinton.begin@gmail.com> 
07/15/2008 10:38 AM


Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org 
cc

Subject
Re: NullPointerException after upgrade to 2.3.2








I'll add the patch now... and let you know when to grab from SVN. 

Clinton

On Tue, Jul 15, 2008 at 11:29 AM, <Christopher.Mathrusse@sybase.com> 
wrote: 

Is the fix committed so I can get it and build from SVN? 

Chris Mathrusse
christopher.mathrusse@sybase.com
Sybase, Inc
One Sybase Drive
Dublin, CA 94568
(925) 236-5553 

"Clinton Begin" <clinton.begin@gmail.com> 
07/15/2008 10:27 AM 



Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org 
cc

Subject
Re: NullPointerException after upgrade to 2.3.2










Known bug, sorry about that.  I hope to get to a fix soon... it's easy, 
just time. 

Clinton

On Tue, Jul 15, 2008 at 11:24 AM, <Christopher.Mathrusse@sybase.com> 
wrote: 

I just upgraded to 2.3.2 due to the fact that Spring 2.5.5 seems to need 
it. After I upgraded I am now getting a NullPointerException after 
executing a procedure. This was working prior to the upgrade and seems to 
be associated to the TypeHandlerFactory.setTypeHanlder method at line 143. 
As I step through the code it appears that the result is returned from the 
procedure. I can see the value returned and my CustomTypeHandler is being 
invoked and is returning the correct value.  ('N' == Boolean.FALSE) 

It appears this error begins in the class ComplexDataExchange.setData() 
method. On line 95 the following statement is executed: 

  if (typeHandlerFactory.hasTypeHandler(parameterMap.getParameterClass())) 
{ 

However, my parameterMap has no parameterClass specified and when it is 
retrieved a null value is returned. This causes the NullPointerException 
to occur in the TypeHandlerFactory.setTypeHanlder() method at line 143: 

if (handler == null && Enum.class.isAssignableFrom(type)) { 

The test is made to see if the handler is null but no test is performed to 
see if the type is null and this results in the NullPointerException. 

Is it now required to have a ParameterClass specified on every statement? 

Chris 




Mime
View raw message