You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Clinton Begin (JIRA)" <ib...@incubator.apache.org> on 2005/07/02 16:30:12 UTC

[jira] Commented: (IBATIS-165) NPE when using userConnection in SqlMapExecutorDelegate.endTransaction()

    [ http://issues.apache.org/jira/browse/IBATIS-165?page=comments#action_12314949 ] 

Clinton Begin commented on IBATIS-165:
--------------------------------------


In the case of a user transaction, the TX manager will still be called, so you always need a transaction manager.  Most people do provide one, even if they are managing user transactions themseles.  The reason being, lazy loading cannot work without a TX manager and a datasource.

The solution to the problem is probably for us to provide a USER transaction manager type, so that you can configura a TX manager that knows you'll be managing transactions yourself, and essentially does very little so as not to get in your way.

Clinton

> NPE when using userConnection in SqlMapExecutorDelegate.endTransaction()
> ------------------------------------------------------------------------
>
>          Key: IBATIS-165
>          URL: http://issues.apache.org/jira/browse/IBATIS-165
>      Project: iBatis for Java
>         Type: Bug
>   Components: SQL Maps
>     Versions: 2.1.0
>  Environment: Managed environment - WebSphere 3.5, AIX
>     Reporter: Marc Fleischeuers

>
> I get a NPE in SqlMapExecutorDelegate, when it accesses txManager, see below stacktrace.
> 	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:776)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:141)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:114)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:860)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:617)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:109)
> 	at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:81)
> txManager is null and it's supposed to be; I'm providing a userConnection and performing transaction management myself. 
> In SqlMapExecutorDelegate.queryForList(...): when I provide a userConnection, trans is set to new UserTransaction() so autoStart is false. This eventually leads to invocation on txManager in endTransaction(), throwing the NPE (there's probably an NPE thrown in startTransaction as well!). I think in the case of a userConnection, txManager should not be called.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira