ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thiago F. G. Albuquerque" <t...@mpdft.gov.br>
Subject Inherited getter and inline parameter map => NullPointerException
Date Wed, 14 May 2008 19:40:58 GMT
Hi,

When I have a inherited getter in the domain object and the corresponding attribute appears
in an inline parameter map, I get a NullPointerException:

Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in Evento.abator.sqlmap.xml.  
--- The error occurred while applying a parameter map.  
--- Check the Evento.abatorgenerated_updateByPrimaryKey-InlineParameterMap.  
--- Check the parameter mapping for the 'codigo' property.  
--- Cause: java.lang.NullPointerException
	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:94)
	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
	at org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:384)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:194)
	... 56 more
Caused by: java.lang.NullPointerException
	at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:165)
	at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
	at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:79)
	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
	at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
	... 60 more

Here is BasicParameterMap.java:165:

    // Set Parameter
    TypeHandler typeHandler = mapping.getTypeHandler();
    if (value != null) {
=>    typeHandler.setParameter(ps, i + 1, value, mapping.getJdbcTypeName()); // <= typeHandler
== null !
    } else if (typeHandler instanceof CustomTypeHandler) {
      typeHandler.setParameter(ps, i + 1, value, mapping.getJdbcTypeName());
    } else {

When I overwrite the getter in the subclass, the error disappears. Maybe iBatis can't get
the return type of inherited methods and, as a result, can't resolve the type handler?

Regards,
Thiago


Mime
View raw message