ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Gagnon <dgag...@siunik.com>
Subject Re: Updating from ibatis 1.3.1 to 2.1.7 .. should I? Does it worth the effort?: ... Done Thanks !!!
Date Tue, 22 Aug 2006 18:46:57 GMT
Hi all,
 
  I just want to thanks you all for the your help for the upgrade.  I 
finally upgraded to 2.2 beta which seems to work well :-)

Thanks again
Best Regards
/David

   David Gagnon wrote:
> Hi,
>
>  Indeed! 2.2.0 works!  So I continue with conversion :-)
>
> Thanks
> /David
> Clinton Begin wrote:
>>
>> Try 2.2.0 if you haven't already...
>>
>> Might be a bug we've already fixed.
>> Cheers,
>> Clinton
>>
>> On 8/18/06, *David Gagnon* < dgagnon@siunik.com 
>> <mailto:dgagnon@siunik.com>> wrote:
>>
>>     Hi all,
>>
>>       I'm pretty sure this is a session problem.  But there is an obscur
>>     point that look to me like a bug.  It's surely not one though.
>>
>>     Trying to make the problem simple:
>>
>>     On the same http request (so same thread) the following function 
>> #1 is
>>     called followed by another.  When the fynally is excuted from
>>     Function
>>     #1.  The sessionScope get reseted and put back into the pool!  But
>>     it's
>>     not removed from SqlMapSessionImpl!!
>>     When function #2 is called it grab the same SqlMapSessionImpl 
>> with the
>>     reseted SessionScope and that lead me to a NullPointerException.
>>
>>     I suppose my problem is simple to fix .. tanks for your
>>     help!  That will
>>     bring me one step far in my upgrade process!
>>     Best Regards
>>
>>
>>     /David
>>
>>
>>
>>
>>
>>     Function #1
>>     ------------
>>     public Object getObject(DbConnection dbCon, String mapKey, Object
>>     param, boolean mustFind) throws DatabaseException, SQLException {
>>
>>             Object result = null;
>>             boolean handleTransactionLocally = false;
>>             try {
>>                 if (dbCon == null) {
>>                     handleTransactionLocally = true;
>>                     dbCon = connectionFactory.getConnection();
>>                     // TODO: check if that really usefull
>>                     dbCon.setReadOnlyConnection(true);
>>                 }
>>
>>     //            MappedStatement statement =
>>     sqlMap.getMappedStatement(mapKey);
>>     //            result =
>>     statement.executeQueryForObject(dbCon.getConnection(), param);
>>
>>                 sqlMap.setUserConnection(dbCon.getConnection());
>>                 result = sqlMap.queryForObject (mapKey, param);
>>
>>                 if ((result == null) && (mustFind)) {
>>                     throw new DataNotFoundException("Object not found 
>> for
>>     param: (" + param.toString() + ")");
>>                 }
>>             } catch (SQLException e) {
>>                 if (handleTransactionLocally) {
>>
>>     ExceptionAdaptor.instance(exceptionAdaptorKey).getMappedException(e,
>>     "Unable to get: " + e.getMessage(), true,
>>     ExceptionAdaptor.ACTION_SEARCH , param);
>>                 } else {
>>                     throw e;
>>                 }
>>             } finally {
>>                 sqlMap.setUserConnection(null);
>>                 if (dbCon != null)
>>                 dbCon.closeAll(handleTransactionLocally);
>>             }
>>             return result;
>>
>>         }
>>     #Function 2
>>     -------
>>     public final SearchResult getListDynamicWithRowCount(String mapKey,
>>     String rowCountMapKey, Map param) throws DatabaseException {
>>             PaginatedList paginatedList = null;
>>             Integer nbRows = new Integer(-1);
>>             Integer pageSize = null;
>>             try {
>>                 paginatedList = sqlMap.queryForPaginatedList(mapKey,
>>     param,
>>     pageSize.intValue());
>>
>>
>>             } catch (SQLException e) {
>>     //            log.error("Error during sql: " + e.getMessage(), e);
>>
>>     ExceptionAdaptor.instance(exceptionAdaptorKey).getMappedException(e,
>>     "getList: " + e.getMessage(), true, ExceptionAdaptor.ACTION_SEARCH
>>     , param);
>>             }
>>
>>             return new SearchResult(paginatedList, nbRows.intValue());
>>         }
>>
>>
>>     Exception:
>>     java.lang.NullPointerException
>>         at
>>     com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList.getList
>>     (PaginatedDataList.java:138)
>>         at
>>     
>> com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList.pageTo(PaginatedDataList.java:98)

>>
>>         at
>>     com.ibatis.sqlmap.engine.mapping.statement.PaginatedDataList.<init>(
>>     PaginatedDataList.java:46)
>>         at
>>     
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForPaginatedList(SqlMapExecutorDelegate.java:667)

>>
>>         at
>>     
>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForPaginatedList
>>     (SqlMapSessionImpl.java:109)
>>         at
>>     
>> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForPaginatedList(SqlMapClientImpl.java:86)

>>
>>         at
>>     
>> com.davecorp.webos.dao.DaoSupport.getListDynamicWithRowCount(DaoSupport.java 
>>
>>     :205)
>>         at
>>     
>> com.davecorp.webos.dao.DaoSupport.getListDynamicWithRowCount(DaoSupport.java:189)

>>
>>         at
>>     
>> com.unik.unikommerce.dao.resource.UkResourceDaoImpl.getResourceListDynamic(UkResourceDaoImpl.java:585)

>>
>>         at
>>     
>> com.unik.unikommerce.dao.resource.UkResourceDaoCachedImpl.getResourceListDynamic(UkResourceDaoCachedImpl.java:315)

>>
>>         at
>>     
>> com.unik.unikommerce.managers.InitUnikommerceApplicationManagerImpl.configureUserSession(

>>
>>     InitUnikommerceApplicationManagerImpl.java:50)
>>         at
>>     
>> com.davecorp.webos.struts.WindowEnabledRequestProcessor.processRequestSetup(WindowEnabledRequestProcessor.java:265)

>>
>>         at
>>     com.davecorp.webos.struts.WindowEnabledRequestProcessor.process
>>     (WindowEnabledRequestProcessor.java:113)
>>         at
>>     
>> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>         at
>>     
>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>         at javax.servlet.http.HttpServlet.service (HttpServlet.java:709)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>         at
>>     
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

>>
>>         at
>>     org.apache.catalina.core.ApplicationFilterChain.doFilter
>>     (ApplicationFilterChain.java:173)
>>         at
>>     
>> com.davecorp.webos.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:141)

>>
>>         at
>>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
>>     (ApplicationFilterChain.java:202)
>>         at
>>     
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

>>
>>         at
>>     
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java 
>>
>>     :213)
>>         at
>>     
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

>>
>>         at
>>     
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)

>>
>>         at
>>     org.apache.catalina.core.StandardHostValve.invoke
>>     (StandardHostValve.java:126)
>>         at
>>     
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
>>
>>         at
>>     
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

>>
>>         at
>>     
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
>>
>>         at
>>     
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 
>>
>>         at
>>     
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection

>>
>>     (Http11BaseProtocol.java:664)
>>         at
>>     
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

>>
>>         at
>>     
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java

>>
>>     :80)
>>         at
>>     
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

>>
>>         at java.lang.Thread.run(Unknown Source)
>>
>>
>>
>>     #Function from SqlMapSessionImpl
>>
>>     private SqlMapSessionImpl getLocalSqlMapSession() {
>>         SqlMapSessionImpl sqlMapSession = (SqlMapSessionImpl)
>>     localSqlMapSession.get();
>>         if (sqlMapSession == null || sqlMapSession.isClosed()) {
>>           sqlMapSession = new SqlMapSessionImpl(this);
>>           localSqlMapSession.set (sqlMapSession);
>>         }
>>         return sqlMapSession;
>>       }
>>
>>
>>
>>
>>
>>
>
>
>
>
>



Mime
View raw message