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 ch...@gsa.gov on 2007/08/15 23:28:29 UTC

TransactionManager thorowing NPE

I am accessing a servlet ( within same app context) with an asynch call 
from a struts app.  Part of the work is a database call (delete) usig 
iBatis SQLMap.

We have no issues with iBatis prior, (except performance, but thats a 
different thread :>) )

Seems like a Transaction issue? Any ideas?

gov.gsa.base.exception.DAOException: java.lang.NullPointerException
at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
at 
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(Unknown 
Source)
at gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown 
Source)
at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
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.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
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:856)
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at 
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at 
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManager.java:108)
at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTemplate.java:60)
at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java:142)
... 26 more
 gov.gsa.base.exception.DAOException : java.lang.NullPointerException










Thank you, 
Christopher

~~~~~~~~~~~~~~~~~
Christopher McCauley
Unisys Consultant
GSA - Federal Acquisition Service
CP3 11028B
(703) 605 9160
chris.mccauley@gsa.gov
chris.mccauley@unisys.com

Re: TransactionManager thorowing NPE

Posted by Larry Meadors <lm...@apache.org>.
I've had problems with the leading / in the jndi name making things
work or not - try adding or removing the leading / - it could work.

Sorry I'm not more help, I have never used jboss...maybe I should try
it sometime.

Larry


On 8/22/07, chris.mccauley@gsa.gov <ch...@gsa.gov> wrote:
>
> This makes no difference to anything...that I can see, at least........
>
>
> Thank you,
>  Christopher
>
>  ~~~~~~~~~~~~~~~~~
>  Christopher McCauley
>  Unisys Consultant
>  GSA - Federal Acquisition Service
>  CP3 11028B
>  (703) 605 9160
>  chris.mccauley@gsa.gov
>  chris.mccauley@unisys.com
>
>
>
>
> "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>
>
> 08/21/2007 06:16 PM
>
> Please respond to
>  user-java@ibatis.apache.org
>
>
> To user-java@ibatis.apache.org
>
> cc
>
>
>
> Subject RE: TransactionManager thorowing NPE
>
>
>
>
>
>
>
>
> Is this what you are using for your sqlmap-config.xml?
>
>  >
>  > <?xml version="1.0" encoding="UTF-8" ?>
>  > <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
>  Config
>  > 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>  > <sqlMapConfig>
>  >     <settings useStatementNamespaces="false" />
>  >
>  >     <!-- JNDI Example -->
>  >         <transactionManager type="JDBC">
>  >                 <dataSource type="JNDI">
>  >                         <property name="DBJndiContext" value=
>  > "java:DATASOURCE"/>
>  >                 </dataSource>
>  >         </transactionManager>
>  >
>  >         <sqlMap resource="dao/File1.xml" />
>  >         <sqlMap resource="dao/File2.xml" />
>  >         <sqlMap resource="dao/File3.xml" />
>  > </sqlMapConfig>
>
>  If so, I think your property setting for your JNDI datasource is
>  incorrect. I think it should be:
>  <property name="DataSource" value="java:DATASOURCE"/>
>
>  Notice that the property name is DataSource, not DBJndiContext
>
>  -Richard
>
>
>  -----Original Message-----
>  From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov]
>  Sent: Tuesday, August 21, 2007 12:12 PM
>  To: user-java@ibatis.apache.org
>  Subject: RE: TransactionManager thorowing NPE
>
>
>  Well, bcak to it:
>  <CODE>
>                  //TEST
>                  DataSource dataSource = null;
>                  try{
>                          Context initContext = new InitialContext();
>                          dataSource = (DataSource)
>  initContext.lookup("java:REALNAME");
>                  } catch (NamingException ne){
>                          ne.printStackTrace();
>                          System.out.println("  NamingException: " +
>  ne.getMessage());
>                  }
>
>                  System.out.println("  dataSource: " + dataSource);
>  </CODE>
>
>  This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
>  org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e
>
>  So I got that goin' for me.....
>
>  Still get the NPE.....
>
>   Caused by: java.lang.NullPointerException
>  2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>  com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
>  Manager.java:108)
>  2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>  com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
>  pDaoTemplate.java:60)
>  2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>  com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
>  e.java:142)
>  2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>  gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
>  r.java:41)
>  2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more
>  2007-08-21 15:08:26,733 INFO  [STDOUT]
>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>  2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
>  returning.
>
>
>
>
>
>
>
>
>
>  Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
>  one.
>  Once we find out why it does in this case, we'll fix it.
>
>  The most likely source is this:   "java:DATASOURCE"
>
>  Make sure this works in your environment:
>
>    DataSource dataSource = (DataSource)
>  initCtx.lookup("java:DATASOURCE");
>
>  Clinton
>
>  -----Original Message-----
>  From: Christopher Lamey [mailto:clamey@localmatters.com]
>  Sent: August-16-07 8:43 AM
>  To: user-java@ibatis.apache.org
>  Subject: Re: TransactionManager thorowing NPE
>
>  Well, that looks ok.
>
>  Could the transaction be closed or committed early, before the delete?
>
>  On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>  wrote:
>
>  > Pretty straight forward....I assume we are using some default
>  Transaction
>  > Manager..
>  >
>  > <?xml version="1.0" encoding="UTF-8" ?>
>  > <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
>  Config
>  > 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>  > <sqlMapConfig>
>  >     <settings useStatementNamespaces="false" />
>  >
>  >     <!-- JNDI Example -->
>  >         <transactionManager type="JDBC">
>  >                 <dataSource type="JNDI">
>  >                         <property name="DBJndiContext" value=
>  > "java:DATASOURCE"/>
>  >                 </dataSource>
>  >         </transactionManager>
>  >
>  >         <sqlMap resource="dao/File1.xml" />
>  >         <sqlMap resource="dao/File2.xml" />
>  >         <sqlMap resource="dao/File3.xml" />
>  > </sqlMapConfig>
>  >
>  >
>  >
>  > Thank you,
>  > Christopher
>  >
>  >
>  >
>  >
>  > What does your transaction configuration look like?  What transaction
>  > manager are you using?
>  >
>  >
>  > On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>  > wrote:
>  >
>  >>
>  >> I am accessing a servlet ( within same app context) with an asynch
>  call
>  > from a
>  >> struts app.  Part of the work is a database call (delete) usig iBatis
>  > SQLMap.
>  >>
>  >> We have no issues with iBatis prior, (except performance, but thats a
>  >> different thread :>) )
>  >>
>  >> Seems like a Transaction issue? Any ideas?
>  >>
>  >> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>  >> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>  >> at
>  >>
>  >
>  gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
>  nt(U
>  nk
>  >> nown Source)
>  >> at
>  >
>  gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>  >> Source)
>  >> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>  >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>  >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
>  tion
>  Fi
>  >> lterChain.java:252)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
>  erCh
>  ai
>  >> n.java:173)
>  >> at
>  >>
>  >
>  org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
>  r.ja
>  va
>  >> :81)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
>  tion
>  Fi
>  >> lterChain.java:202)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
>  erCh
>  ai
>  >> n.java:173)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
>  e.ja
>  va
>  >> :213)
>  >> at
>  >>
>  >
>  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
>  e.ja
>  va
>  >> :178)
>  >> at
>  >>
>  >
>  org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
>  lVal
>  ve
>  >> .java:39)
>  >> at
>  >>
>  >
>  org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
>  soci
>  at
>  >> ionValve.java:159)
>  >> at
>  >>
>  >
>  org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
>  Base
>  .j
>  >> ava:407)
>  >> at
>  >>
>  >
>  org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
>  ava:
>  59
>  >> )
>  >> 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
>  :1
>  >> 07)
>  >> at
>  >
>  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
>  48)
>  >> at
>  >
>  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
>  6)
>  >> at
>  >>
>  >
>  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
>  onne
>  ct
>  >> ion(Http11Protocol.java:744)
>  >> at
>  >>
>  >
>  org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
>  .jav
>  a:
>  >> 527)
>  >> at
>  >>
>  >
>  org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
>  Thre
>  ad
>  >> .java:112)
>  >> at java.lang.Thread.run(Thread.java:595)
>  >> Caused by: java.lang.NullPointerException
>  >> at
>  >>
>  >
>  com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
>  Mana
>  ge
>  >> r.java:108)
>  >> at
>  >>
>  >
>  com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
>  pDao
>  Te
>  >> mplate.java:60)
>  >> at
>  >>
>  >
>  com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
>  e.ja
>  va
>  >> :142)
>  >> ... 26 more
>  >>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >> Thank you,
>  >> Christopher
>  >>
>  >> ~~~~~~~~~~~~~~~~~
>  >> Christopher McCauley
>  >> Unisys Consultant
>  >> GSA - Federal Acquisition Service
>  >> CP3 11028B
>  >> (703) 605 9160
>  >> chris.mccauley@gsa.gov
>  >> chris.mccauley@unisys.com
>  >
>  >
>  >
>  >
>
>
>
>
>
>
>

RE: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
You are both correct, the SQLMap could not be loaded the way I had it 
coded....oversight because I do it prperly everywhere else.. like this:

        DaoManager daoManager = DAOFactory.getDAOManager();
        AttachmentDAO dao = 
(AttachmentDAO)daoManager.getDao(AttachmentDAO.class, Constants.SQL_MAP);

thanks for everyone's help!

Thank you, 
Christopher





Christopher,
Where are you getting your SqlMapClient? The SqlMapClient can be stored
in a static variable once it is built (retrieved from
SqlMapClientBuilder.buildSqlMapClient()) 

Depending on how your SQLMapAttachmentDAOImpl is written, it should also
be able to be created once and stored. 
<CODE> 
        DaoManager daoManager = DAOFactory.getDAOManager(); 
        SQLMapAttachmentDAOImpl dao = new
SQLMapAttachmentDAOImpl(daoManager); 
        rc += dao.deleteAttachments(key1); </CODE> 


-Richard


-----Original Message-----
From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov] 
Sent: Thursday, August 23, 2007 12:24 PM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE


No explicit Transaction Handling: 


Call to Servlet is JavaScsript : 

xmlHttp.open("GET", url, true);
XMLHttpRequest.send(null)
blah, blah this all works OK... 


SERVLET: 

public void doGet(HttpServletRequest request, HttpServletResponse
response) 
                        throws ServletException, IOException { 
 

                int key1 =
Integer.parseInt(request.getParameter("key1")); 
                int key2 =
Integer.parseInt(request.getParameter("key2")); 
 
                Service service = new Service(); 
 
                //SUGGESTED TEST - PASSES!! 
                DataSource dataSource = null; 
                try{ 
                        Context initContext = new InitialContext(); 
                        dataSource = (DataSource)
initContext.lookup("java:AMWEB"); 
                } catch (NamingException ne){ 
                        ne.printStackTrace(); 
                        System.out.println("  NamingException: " +
ne.getMessage()); 
                } 
                System.out.println("  dataSource: " + dataSource); 
 
                try{ 
                        service.deleteAttachment(fileLocation, key1,
key2); 

                }catch(DAOException e){ 
                        e.printStackTrace(); 
                        System.out.println(e.getClass().getName() + " :
" + e.getMessage()); 
                } catch(Exception e){ 
                        e.printStackTrace(); 
                        System.out.println(e.getClass().getName() + " :
" + e.getMessage()); 
                } 
 
                System.out.println(" RemoveAttachmentServlet returning."
); 
 
                // Write XML to response. 
                response.setContentType("text/html"); 
                response.getWriter().write("removed"); 
        } 

Service Layer: 

Connects to a WebService (Axis) then returns.... 

<CODE> 
        DaoManager daoManager = DAOFactory.getDAOManager(); 
        SQLMapAttachmentDAOImpl dao = new
SQLMapAttachmentDAOImpl(daoManager); 
        rc += dao.deleteAttachments(key1); </CODE> 


WHERE THE SQLMapImpl is this 
<CODE> 

public class SQLMapAttachmentDAOImpl extends SqlMapDaoTemplateWrapper
implements AttachmentDAO 
{ 

        /** 
         * 
         * @param key1 
         * @param key2 
         * @return 
         */ 
        public int deleteSRCVisitAttachment(Integer key1, Integer key2)
throws IOException, ServiceException, FactoryException { 

                Map parametersMap = new HashMap(); 
                parametersMap.put("key1", key1); 
                parametersMap.put("key2", key2); 

                delete("deleteAttachment", parametersMap); 

                return 1; 
        } 
} 

SQL 

   <delete id="deleteAttachment" parameterClass="java.util.Map"> 
            DELETE 
              FROM TABLE 
             WHERE TABLE.KEY1 = #key1# 
           AND TABLE.KEY2 = #key2# 
    </delete> 
</CODE> 


Thank you, 
Christopher

~~~~~~~~~~~~~~~~~
Christopher McCauley
Unisys Consultant
GSA - Federal Acquisition Service
CP3 11028B
(703) 605 9160
chris.mccauley@gsa.gov
chris.mccauley@unisys.com 




"Christopher Lamey" <cl...@localmatters.com> 

08/22/2007 03:17 PM 
Please respond to
user-java@ibatis.apache.org

To
user-java@ibatis.apache.org 
cc
Subject
Re: TransactionManager thorowing NPE

 




So is this datasource not working at all, or only for transactions?

If you can use the datasource to do selects ok, then the datasource is
setup
correctly and it's a transaction manager issue.

If you can't, then it's a jndi setup thing.  I think because you could
do
the InitialContext stuff, it isn't a jndi setup thing.  And if that's
true,
then I'd like to see the code around this to see how you're handling
transactions.


On 8/22/07 11:24 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> This makes no difference to anything...that I can see, at
least........
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com
> 
> 
> 
> 
> "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>
> 08/21/2007 06:16 PM
> Please respond to
> user-java@ibatis.apache.org
> 
> 
> To
> user-java@ibatis.apache.org
> cc
> 
> Subject
> RE: TransactionManager thorowing NPE
> 
> 
> 
> 
> 
> 
> Is this what you are using for your sqlmap-config.xml?
> 
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig> 
> 
> If so, I think your property setting for your JNDI datasource is
> incorrect. I think it should be:
> <property name="DataSource" value="java:DATASOURCE"/>
> 
> Notice that the property name is DataSource, not DBJndiContext
> 
> -Richard
> 
> 
> -----Original Message-----
> From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov]
> Sent: Tuesday, August 21, 2007 12:12 PM
> To: user-java@ibatis.apache.org
> Subject: RE: TransactionManager thorowing NPE
> 
> 
> Well, bcak to it:
> <CODE> 
>                 //TEST
>                 DataSource dataSource = null;
>                 try{
>                         Context initContext = new InitialContext();
>                         dataSource = (DataSource)
> initContext.lookup("java:REALNAME");
>                 } catch (NamingException ne){
>                         ne.printStackTrace();
>                         System.out.println("  NamingException: " +
> ne.getMessage());
>                 }
> 
>                 System.out.println("  dataSource: " + dataSource);
> </CODE> 
> 
> This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]
dataSource:
> org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e
> 
> So I got that goin' for me.....
> 
> Still get the NPE.....
> 
>  Caused by: java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Manager.java:108)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDaoTemplate.java:60)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.java:142) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
> r.java:41) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more
> 2007-08-21 15:08:26,733 INFO  [STDOUT]
> gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
> returning. 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
> one.
> Once we find out why it does in this case, we'll fix it.
> 
> The most likely source is this:   "java:DATASOURCE"
> 
> Make sure this works in your environment:
> 
>   DataSource dataSource = (DataSource)
> initCtx.lookup("java:DATASOURCE");
> 
> Clinton
> 
> -----Original Message-----
> From: Christopher Lamey [mailto:clamey@localmatters.com]
> Sent: August-16-07 8:43 AM
> To: user-java@ibatis.apache.org
> Subject: Re: TransactionManager thorowing NPE
> 
> Well, that looks ok.
> 
> Could the transaction be closed or committed early, before the delete?
> 
> On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> Pretty straight forward....I assume we are using some default
> Transaction
>> Manager..
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig>
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> 
>> 
>> 
>> What does your transaction configuration look like?  What transaction
>> manager are you using?
>> 
>> 
>> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>> wrote:
>> 
>>> 
>>> I am accessing a servlet ( within same app context) with an asynch
> call
>> from a
>>> struts app.  Part of the work is a database call (delete) usig
iBatis
>> SQLMap.
>>> 
>>> We have no issues with iBatis prior, (except performance, but thats
a
>>> different thread :>) )
>>> 
>>> Seems like a Transaction issue? Any ideas?
>>> 
>>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>>> at 
>>> 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
> nt(U
> nk
>>> nown Source) 
>>> at 
>> 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>>> Source) 
>>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:252)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
> r.ja
> va
>>> :81) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:202)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.ja
> va
>>> :213) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.ja
> va
>>> :178) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
> lVal
> ve
>>> .java:39) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
> soci
> at
>>> ionValve.java:159)
>>> at 
>>> 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
> Base
> .j
>>> ava:407) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
> ava:
> 59
>>> ) 
>>> 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
> :1
>>> 07) 
>>> at 
>> 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 48)
>>> at 
>> 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
> 6)
>>> at 
>>> 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onne
> ct
>>> ion(Http11Protocol.java:744)
>>> at 
>>> 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .jav
> a:
>>> 527) 
>>> at 
>>> 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
> Thre
> ad
>>> .java:112) 
>>> at java.lang.Thread.run(Thread.java:595)
>>> Caused by: java.lang.NullPointerException
>>> at 
>>> 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Mana
> ge
>>> r.java:108) 
>>> at 
>>> 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDao
> Te
>>> mplate.java:60)
>>> at 
>>> 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.ja
> va
>>> :142) 
>>> ... 26 more 
>>>  gov.gsa.base.exception.DAOException :
java.lang.NullPointerException
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Thank you, 
>>> Christopher
>>> 
>>> ~~~~~~~~~~~~~~~~~
>>> Christopher McCauley
>>> Unisys Consultant
>>> GSA - Federal Acquisition Service
>>> CP3 11028B
>>> (703) 605 9160
>>> chris.mccauley@gsa.gov
>>> chris.mccauley@unisys.com
>> 
>> 
>> 
>> 
> 
> 
> 
> 
> 
> 







RE: TransactionManager thorowing NPE

Posted by "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>.
Christopher,
Where are you getting your SqlMapClient? The SqlMapClient can be stored
in a static variable once it is built (retrieved from
SqlMapClientBuilder.buildSqlMapClient())  

Depending on how your SQLMapAttachmentDAOImpl is written, it should also
be able to be created once and stored. 
<CODE> 
        DaoManager daoManager = DAOFactory.getDAOManager(); 
        SQLMapAttachmentDAOImpl dao = new
SQLMapAttachmentDAOImpl(daoManager); 
        rc += dao.deleteAttachments(key1); </CODE> 


-Richard


-----Original Message-----
From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov] 
Sent: Thursday, August 23, 2007 12:24 PM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE


No explicit Transaction Handling: 


Call to Servlet is JavaScsript : 

xmlHttp.open("GET", url, true);
XMLHttpRequest.send(null)
blah, blah this all works OK... 


SERVLET: 

public void doGet(HttpServletRequest request, HttpServletResponse
response) 
                        throws ServletException, IOException { 
                

                int key1 =
Integer.parseInt(request.getParameter("key1")); 
                int key2 =
Integer.parseInt(request.getParameter("key2")); 
          
                Service service = new Service(); 
                  
                //SUGGESTED TEST - PASSES!! 
                DataSource dataSource = null; 
                try{ 
                        Context initContext = new InitialContext(); 
                        dataSource = (DataSource)
initContext.lookup("java:AMWEB"); 
                } catch (NamingException ne){ 
                        ne.printStackTrace(); 
                        System.out.println("  NamingException: " +
ne.getMessage()); 
                } 
                System.out.println("  dataSource: " + dataSource); 
                
                try{ 
                        service.deleteAttachment(fileLocation, key1,
key2); 

                }catch(DAOException e){ 
                        e.printStackTrace(); 
                        System.out.println(e.getClass().getName() + " :
" + e.getMessage()); 
                } catch(Exception e){ 
                        e.printStackTrace(); 
                        System.out.println(e.getClass().getName() + " :
" + e.getMessage()); 
                } 
                
                System.out.println(" RemoveAttachmentServlet returning."
); 
                
                // Write XML to response. 
                response.setContentType("text/html"); 
                response.getWriter().write("removed"); 
        } 

Service Layer: 

Connects to a WebService (Axis) then returns.... 

<CODE> 
        DaoManager daoManager = DAOFactory.getDAOManager(); 
        SQLMapAttachmentDAOImpl dao = new
SQLMapAttachmentDAOImpl(daoManager); 
        rc += dao.deleteAttachments(key1); </CODE> 


WHERE THE SQLMapImpl is this 
<CODE> 

public class SQLMapAttachmentDAOImpl extends SqlMapDaoTemplateWrapper
implements AttachmentDAO 
{ 

        /** 
         * 
         * @param key1 
         * @param key2 
         * @return 
         */ 
        public int deleteSRCVisitAttachment(Integer key1, Integer key2)
throws IOException, ServiceException, FactoryException { 

                Map parametersMap = new HashMap(); 
                parametersMap.put("key1", key1); 
                parametersMap.put("key2", key2); 

                delete("deleteAttachment", parametersMap); 

                return 1; 
        } 
} 

SQL 

   <delete id="deleteAttachment" parameterClass="java.util.Map"> 
            DELETE 
              FROM TABLE 
             WHERE TABLE.KEY1 = #key1# 
           AND TABLE.KEY2 = #key2# 
    </delete> 
</CODE> 


Thank you, 
Christopher

~~~~~~~~~~~~~~~~~
Christopher McCauley
Unisys Consultant
GSA - Federal Acquisition Service
CP3 11028B
(703) 605 9160
chris.mccauley@gsa.gov
chris.mccauley@unisys.com 




"Christopher Lamey" <cl...@localmatters.com> 

08/22/2007 03:17 PM 
Please respond to
user-java@ibatis.apache.org

To
user-java@ibatis.apache.org 
cc
Subject
Re: TransactionManager thorowing NPE

	




So is this datasource not working at all, or only for transactions?

If you can use the datasource to do selects ok, then the datasource is
setup
correctly and it's a transaction manager issue.

If you can't, then it's a jndi setup thing.  I think because you could
do
the InitialContext stuff, it isn't a jndi setup thing.  And if that's
true,
then I'd like to see the code around this to see how you're handling
transactions.


On 8/22/07 11:24 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> This makes no difference to anything...that I can see, at
least........
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com
> 
> 
> 
> 
> "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>
> 08/21/2007 06:16 PM
> Please respond to
> user-java@ibatis.apache.org
> 
> 
> To
> user-java@ibatis.apache.org
> cc
> 
> Subject
> RE: TransactionManager thorowing NPE
> 
> 
> 
> 
> 
> 
> Is this what you are using for your sqlmap-config.xml?
> 
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig> 
> 
> If so, I think your property setting for your JNDI datasource is
> incorrect. I think it should be:
> <property name="DataSource" value="java:DATASOURCE"/>
> 
> Notice that the property name is DataSource, not DBJndiContext
> 
> -Richard
> 
> 
> -----Original Message-----
> From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov]
> Sent: Tuesday, August 21, 2007 12:12 PM
> To: user-java@ibatis.apache.org
> Subject: RE: TransactionManager thorowing NPE
> 
> 
> Well, bcak to it:
> <CODE> 
>                 //TEST
>                 DataSource dataSource = null;
>                 try{
>                         Context initContext = new InitialContext();
>                         dataSource = (DataSource)
> initContext.lookup("java:REALNAME");
>                 } catch (NamingException ne){
>                         ne.printStackTrace();
>                         System.out.println("  NamingException: " +
> ne.getMessage());
>                 }
>  
>                 System.out.println("  dataSource: " + dataSource);
> </CODE> 
> 
> This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]
dataSource:
> org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e
> 
> So I got that goin' for me.....
> 
> Still get the NPE.....
> 
>  Caused by: java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Manager.java:108)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDaoTemplate.java:60)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.java:142) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
>
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
> r.java:41) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more
> 2007-08-21 15:08:26,733 INFO  [STDOUT]
> gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
> returning. 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
> one.
> Once we find out why it does in this case, we'll fix it.
> 
> The most likely source is this:   "java:DATASOURCE"
> 
> Make sure this works in your environment:
> 
>   DataSource dataSource = (DataSource)
> initCtx.lookup("java:DATASOURCE");
> 
> Clinton
> 
> -----Original Message-----
> From: Christopher Lamey [mailto:clamey@localmatters.com]
> Sent: August-16-07 8:43 AM
> To: user-java@ibatis.apache.org
> Subject: Re: TransactionManager thorowing NPE
> 
> Well, that looks ok.
> 
> Could the transaction be closed or committed early, before the delete?
> 
> On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> Pretty straight forward....I assume we are using some default
> Transaction
>> Manager..
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig>
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> 
>> 
>> 
>> What does your transaction configuration look like?  What transaction
>> manager are you using?
>> 
>> 
>> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>> wrote:
>> 
>>> 
>>> I am accessing a servlet ( within same app context) with an asynch
> call
>> from a
>>> struts app.  Part of the work is a database call (delete) usig
iBatis
>> SQLMap.
>>> 
>>> We have no issues with iBatis prior, (except performance, but thats
a
>>> different thread :>) )
>>> 
>>> Seems like a Transaction issue? Any ideas?
>>> 
>>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>>> at 
>>> 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
> nt(U
> nk
>>> nown Source) 
>>> at 
>> 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>>> Source) 
>>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:252)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
> r.ja
> va
>>> :81) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:202)
>>> at 
>>> 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.ja
> va
>>> :213) 
>>> at 
>>> 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.ja
> va
>>> :178) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
> lVal
> ve
>>> .java:39) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
> soci
> at
>>> ionValve.java:159)
>>> at 
>>> 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
> Base
> .j
>>> ava:407) 
>>> at 
>>> 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
> ava:
> 59
>>> ) 
>>> 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
> :1
>>> 07) 
>>> at 
>> 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 48)
>>> at 
>> 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
> 6)
>>> at 
>>> 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onne
> ct
>>> ion(Http11Protocol.java:744)
>>> at 
>>> 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .jav
> a:
>>> 527) 
>>> at 
>>> 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
> Thre
> ad
>>> .java:112) 
>>> at java.lang.Thread.run(Thread.java:595)
>>> Caused by: java.lang.NullPointerException
>>> at 
>>> 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Mana
> ge
>>> r.java:108) 
>>> at 
>>> 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDao
> Te
>>> mplate.java:60)
>>> at 
>>> 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.ja
> va
>>> :142) 
>>> ... 26 more 
>>>  gov.gsa.base.exception.DAOException :
java.lang.NullPointerException
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Thank you, 
>>> Christopher
>>> 
>>> ~~~~~~~~~~~~~~~~~
>>> Christopher McCauley
>>> Unisys Consultant
>>> GSA - Federal Acquisition Service
>>> CP3 11028B
>>> (703) 605 9160
>>> chris.mccauley@gsa.gov
>>> chris.mccauley@unisys.com
>> 
>> 
>> 
>> 
> 
> 
> 
> 
> 
> 





Re: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
No explicit Transaction Handling:


Call to Servlet is JavaScsript :

xmlHttp.open("GET", url, true);
XMLHttpRequest.send(null)
blah, blah this all works OK...


SERVLET:

public void doGet(HttpServletRequest request, HttpServletResponse 
response)
                        throws ServletException, IOException {
 

                int key1 = Integer.parseInt(request.getParameter("key1"));
                int key2 = Integer.parseInt(request.getParameter("key2"));
 
                Service service = new Service();
 
                //SUGGESTED TEST - PASSES!!
                DataSource dataSource = null;
                try{
                        Context initContext = new InitialContext();
                        dataSource = (DataSource) initContext.lookup(
"java:AMWEB");
                } catch (NamingException ne){
                        ne.printStackTrace();
                        System.out.println("  NamingException: " + 
ne.getMessage());
                }
                System.out.println("  dataSource: " + dataSource);
 
                try{
                        service.deleteAttachment(fileLocation, key1, 
key2);

                }catch(DAOException e){
                        e.printStackTrace();
                        System.out.println(e.getClass().getName() + " : " 
+ e.getMessage());
                } catch(Exception e){
                        e.printStackTrace();
                        System.out.println(e.getClass().getName() + " : " 
+ e.getMessage());
                }
 
                System.out.println(" RemoveAttachmentServlet returning." 
);
 
                // Write XML to response.
                response.setContentType("text/html");
                response.getWriter().write("removed");
        }

Service Layer:

Connects to a WebService (Axis) then returns....

<CODE>
        DaoManager daoManager = DAOFactory.getDAOManager();
        SQLMapAttachmentDAOImpl dao = new 
SQLMapAttachmentDAOImpl(daoManager); 
        rc += dao.deleteAttachments(key1);
</CODE>


WHERE THE SQLMapImpl is this 
<CODE>

public class SQLMapAttachmentDAOImpl extends SqlMapDaoTemplateWrapper 
implements AttachmentDAO
{

        /**
         * 
         * @param key1
         * @param key2
         * @return
         */
        public int deleteSRCVisitAttachment(Integer key1, Integer key2) 
throws IOException, ServiceException, FactoryException {

                Map parametersMap = new HashMap();
                parametersMap.put("key1", key1);
                parametersMap.put("key2", key2);

                delete("deleteAttachment", parametersMap);

                return 1;
        }
}

SQL

   <delete id="deleteAttachment" parameterClass="java.util.Map">
        DELETE 
          FROM TABLE
         WHERE TABLE.KEY1 = #key1#
           AND TABLE.KEY2 = #key2#
    </delete>
</CODE>


Thank you, 
Christopher

~~~~~~~~~~~~~~~~~
Christopher McCauley
Unisys Consultant
GSA - Federal Acquisition Service
CP3 11028B
(703) 605 9160
chris.mccauley@gsa.gov
chris.mccauley@unisys.com




"Christopher Lamey" <cl...@localmatters.com> 
08/22/2007 03:17 PM
Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org
cc

Subject
Re: TransactionManager thorowing NPE






So is this datasource not working at all, or only for transactions?

If you can use the datasource to do selects ok, then the datasource is 
setup
correctly and it's a transaction manager issue.

If you can't, then it's a jndi setup thing.  I think because you could do
the InitialContext stuff, it isn't a jndi setup thing.  And if that's 
true,
then I'd like to see the code around this to see how you're handling
transactions.


On 8/22/07 11:24 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> This makes no difference to anything...that I can see, at least........
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com
> 
> 
> 
> 
> "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>
> 08/21/2007 06:16 PM
> Please respond to
> user-java@ibatis.apache.org
> 
> 
> To
> user-java@ibatis.apache.org
> cc
> 
> Subject
> RE: TransactionManager thorowing NPE
> 
> 
> 
> 
> 
> 
> Is this what you are using for your sqlmap-config.xml?
> 
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig> 
> 
> If so, I think your property setting for your JNDI datasource is
> incorrect. I think it should be:
> <property name="DataSource" value="java:DATASOURCE"/>
> 
> Notice that the property name is DataSource, not DBJndiContext
> 
> -Richard
> 
> 
> -----Original Message-----
> From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov]
> Sent: Tuesday, August 21, 2007 12:12 PM
> To: user-java@ibatis.apache.org
> Subject: RE: TransactionManager thorowing NPE
> 
> 
> Well, bcak to it:
> <CODE> 
>                 //TEST
>                 DataSource dataSource = null;
>                 try{
>                         Context initContext = new InitialContext();
>                         dataSource = (DataSource)
> initContext.lookup("java:REALNAME");
>                 } catch (NamingException ne){
>                         ne.printStackTrace();
>                         System.out.println("  NamingException: " +
> ne.getMessage());
>                 }
> 
>                 System.out.println("  dataSource: " + dataSource);
> </CODE> 
> 
> This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
> org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e
> 
> So I got that goin' for me.....
> 
> Still get the NPE.....
> 
>  Caused by: java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Manager.java:108)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDaoTemplate.java:60)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.java:142) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
> r.java:41) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more
> 2007-08-21 15:08:26,733 INFO  [STDOUT]
> gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
> returning. 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
> one.
> Once we find out why it does in this case, we'll fix it.
> 
> The most likely source is this:   "java:DATASOURCE"
> 
> Make sure this works in your environment:
> 
>   DataSource dataSource = (DataSource)
> initCtx.lookup("java:DATASOURCE");
> 
> Clinton
> 
> -----Original Message-----
> From: Christopher Lamey [mailto:clamey@localmatters.com]
> Sent: August-16-07 8:43 AM
> To: user-java@ibatis.apache.org
> Subject: Re: TransactionManager thorowing NPE
> 
> Well, that looks ok.
> 
> Could the transaction be closed or committed early, before the delete?
> 
> On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> Pretty straight forward....I assume we are using some default
> Transaction
>> Manager..
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig>
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> 
>> 
>> 
>> What does your transaction configuration look like?  What transaction
>> manager are you using?
>> 
>> 
>> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>> wrote:
>> 
>>> 
>>> I am accessing a servlet ( within same app context) with an asynch
> call
>> from a
>>> struts app.  Part of the work is a database call (delete) usig iBatis
>> SQLMap.
>>> 
>>> We have no issues with iBatis prior, (except performance, but thats a
>>> different thread :>) )
>>> 
>>> Seems like a Transaction issue? Any ideas?
>>> 
>>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>>> at 
>>> 
>> 
> gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
> nt(U
> nk
>>> nown Source) 
>>> at 
>> 
> gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>>> Source) 
>>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:252)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
> r.ja
> va
>>> :81) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:202)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.ja
> va
>>> :213) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.ja
> va
>>> :178) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
> lVal
> ve
>>> .java:39) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
> soci
> at
>>> ionValve.java:159)
>>> at 
>>> 
>> 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
> Base
> .j
>>> ava:407) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
> ava:
> 59
>>> ) 
>>> 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
> :1
>>> 07) 
>>> at 
>> 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 48)
>>> at 
>> 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
> 6)
>>> at 
>>> 
>> 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onne
> ct
>>> ion(Http11Protocol.java:744)
>>> at 
>>> 
>> 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .jav
> a:
>>> 527) 
>>> at 
>>> 
>> 
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
> Thre
> ad
>>> .java:112) 
>>> at java.lang.Thread.run(Thread.java:595)
>>> Caused by: java.lang.NullPointerException
>>> at 
>>> 
>> 
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Mana
> ge
>>> r.java:108) 
>>> at 
>>> 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDao
> Te
>>> mplate.java:60)
>>> at 
>>> 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.ja
> va
>>> :142) 
>>> ... 26 more 
>>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Thank you, 
>>> Christopher
>>> 
>>> ~~~~~~~~~~~~~~~~~
>>> Christopher McCauley
>>> Unisys Consultant
>>> GSA - Federal Acquisition Service
>>> CP3 11028B
>>> (703) 605 9160
>>> chris.mccauley@gsa.gov
>>> chris.mccauley@unisys.com
>> 
>> 
>> 
>> 
> 
> 
> 
> 
> 
> 




Re: TransactionManager thorowing NPE

Posted by Christopher Lamey <cl...@localmatters.com>.
So is this datasource not working at all, or only for transactions?

If you can use the datasource to do selects ok, then the datasource is setup
correctly and it's a transaction manager issue.

If you can't, then it's a jndi setup thing.  I think because you could do
the InitialContext stuff, it isn't a jndi setup thing.  And if that's true,
then I'd like to see the code around this to see how you're handling
transactions.


On 8/22/07 11:24 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> This makes no difference to anything...that I can see, at least........
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com
> 
> 
> 
> 
> "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>
> 08/21/2007 06:16 PM
> Please respond to
> user-java@ibatis.apache.org
> 
> 
> To
> user-java@ibatis.apache.org
> cc
> 
> Subject
> RE: TransactionManager thorowing NPE
> 
> 
> 
> 
> 
> 
> Is this what you are using for your sqlmap-config.xml?
> 
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig> 
> 
> If so, I think your property setting for your JNDI datasource is
> incorrect. I think it should be:
> <property name="DataSource" value="java:DATASOURCE"/>
> 
> Notice that the property name is DataSource, not DBJndiContext
> 
> -Richard
> 
> 
> -----Original Message-----
> From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov]
> Sent: Tuesday, August 21, 2007 12:12 PM
> To: user-java@ibatis.apache.org
> Subject: RE: TransactionManager thorowing NPE
> 
> 
> Well, bcak to it:
> <CODE> 
>                 //TEST
>                 DataSource dataSource = null;
>                 try{
>                         Context initContext = new InitialContext();
>                         dataSource = (DataSource)
> initContext.lookup("java:REALNAME");
>                 } catch (NamingException ne){
>                         ne.printStackTrace();
>                         System.out.println("  NamingException: " +
> ne.getMessage());
>                 }
>  
>                 System.out.println("  dataSource: " + dataSource);
> </CODE> 
> 
> This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
> org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e
> 
> So I got that goin' for me.....
> 
> Still get the NPE.....
> 
>  Caused by: java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Manager.java:108)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDaoTemplate.java:60)
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.java:142) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         at
> gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
> r.java:41) 
> 2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more
> 2007-08-21 15:08:26,733 INFO  [STDOUT]
> gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
> returning. 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
> one.
> Once we find out why it does in this case, we'll fix it.
> 
> The most likely source is this:   "java:DATASOURCE"
> 
> Make sure this works in your environment:
> 
>   DataSource dataSource = (DataSource)
> initCtx.lookup("java:DATASOURCE");
> 
> Clinton
> 
> -----Original Message-----
> From: Christopher Lamey [mailto:clamey@localmatters.com]
> Sent: August-16-07 8:43 AM
> To: user-java@ibatis.apache.org
> Subject: Re: TransactionManager thorowing NPE
> 
> Well, that looks ok.
> 
> Could the transaction be closed or committed early, before the delete?
> 
> On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> Pretty straight forward....I assume we are using some default
> Transaction
>> Manager..
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
> Config
>> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
>> <sqlMapConfig>
>>     <settings useStatementNamespaces="false" />
>> 
>>     <!-- JNDI Example -->
>>         <transactionManager type="JDBC">
>>                 <dataSource type="JNDI">
>>                         <property name="DBJndiContext" value=
>> "java:DATASOURCE"/>
>>                 </dataSource>
>>         </transactionManager>
>> 
>>         <sqlMap resource="dao/File1.xml" />
>>         <sqlMap resource="dao/File2.xml" />
>>         <sqlMap resource="dao/File3.xml" />
>> </sqlMapConfig>
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> 
>> 
>> 
>> What does your transaction configuration look like?  What transaction
>> manager are you using?
>> 
>> 
>> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
>> wrote:
>> 
>>> 
>>> I am accessing a servlet ( within same app context) with an asynch
> call
>> from a
>>> struts app.  Part of the work is a database call (delete) usig iBatis
>> SQLMap.
>>> 
>>> We have no issues with iBatis prior, (except performance, but thats a
>>> different thread :>) )
>>> 
>>> Seems like a Transaction issue? Any ideas?
>>> 
>>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>>> at 
>>> 
>> 
> gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
> nt(U
> nk
>>> nown Source) 
>>> at 
>> 
> gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>>> Source) 
>>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:252)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
> r.ja
> va
>>> :81) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tion
> Fi
>>> lterChain.java:202)
>>> at 
>>> 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erCh
> ai
>>> n.java:173) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.ja
> va
>>> :213) 
>>> at 
>>> 
>> 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.ja
> va
>>> :178) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
> lVal
> ve
>>> .java:39) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
> soci
> at
>>> ionValve.java:159)
>>> at 
>>> 
>> 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
> Base
> .j
>>> ava:407) 
>>> at 
>>> 
>> 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
> ava:
> 59
>>> ) 
>>> 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
> :1
>>> 07) 
>>> at 
>> 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 48)
>>> at 
>> 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
> 6)
>>> at 
>>> 
>> 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onne
> ct
>>> ion(Http11Protocol.java:744)
>>> at 
>>> 
>> 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .jav
> a:
>>> 527) 
>>> at 
>>> 
>> 
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
> Thre
> ad
>>> .java:112) 
>>> at java.lang.Thread.run(Thread.java:595)
>>> Caused by: java.lang.NullPointerException
>>> at 
>>> 
>> 
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
> Mana
> ge
>>> r.java:108) 
>>> at 
>>> 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
> pDao
> Te
>>> mplate.java:60)
>>> at 
>>> 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
> e.ja
> va
>>> :142) 
>>> ... 26 more 
>>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Thank you, 
>>> Christopher
>>> 
>>> ~~~~~~~~~~~~~~~~~
>>> Christopher McCauley
>>> Unisys Consultant
>>> GSA - Federal Acquisition Service
>>> CP3 11028B
>>> (703) 605 9160
>>> chris.mccauley@gsa.gov
>>> chris.mccauley@unisys.com
>> 
>> 
>> 
>> 
> 
> 
> 
> 
> 
> 


RE: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
Let me reiterate because it is still an issue:

Everything till now works fine, iBatis / JBoss / Struts - DataSource 

This is a struts app where I am doing an asynch JavaScript call to a 
Servlet where I do some work.   Consume a WebService and Delete a database 
record.

 I get the NPE..... 

Caused by: java.lang.NullPointerException 
at 
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManager.java:108) 

at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTemplate.java:60) 

at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java:142) 

at 
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrapper.java:41)
... 25 more 
gov.gsa.base.exception.DAOException : java.lang.NullPointerException


 - I have a theory that iBatis cant load the SQLMap because it is a 
different ServletContext than struts... I can neither support or disprve 
this claim...Help? Ideas?

TIA







Well, bcak to it: 
<CODE> 
               //TEST 
               DataSource dataSource = null; 
               try{ 
                       Context initContext = new InitialContext(); 
                       dataSource = (DataSource)
initContext.lookup("java:REALNAME"); 
               } catch (NamingException ne){ 
                       ne.printStackTrace(); 
                       System.out.println("  NamingException: " +
ne.getMessage()); 
               } 
 
               System.out.println("  dataSource: " + dataSource);
</CODE> 

This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e 

So I got that goin' for me..... 

Still get the NPE..... 

Caused by: java.lang.NullPointerException 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Manager.java:108) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDaoTemplate.java:60) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.java:142) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
r.java:41) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more 
2007-08-21 15:08:26,733 INFO  [STDOUT]
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
returning. 









Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

 DataSource dataSource = (DataSource)
initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> Pretty straight forward....I assume we are using some default
Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
> 
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch
call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
nt(U
nk
>> nown Source) 
>> at 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
soci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>> at 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Mana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 







RE: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
This makes no difference to anything...that I can see, at least........


Thank you, 
Christopher

~~~~~~~~~~~~~~~~~
Christopher McCauley
Unisys Consultant
GSA - Federal Acquisition Service
CP3 11028B
(703) 605 9160
chris.mccauley@gsa.gov
chris.mccauley@unisys.com




"Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil> 
08/21/2007 06:16 PM
Please respond to
user-java@ibatis.apache.org


To
user-java@ibatis.apache.org
cc

Subject
RE: TransactionManager thorowing NPE






Is this what you are using for your sqlmap-config.xml?

> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
> 
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig> 

If so, I think your property setting for your JNDI datasource is
incorrect. I think it should be:
<property name="DataSource" value="java:DATASOURCE"/>

Notice that the property name is DataSource, not DBJndiContext

-Richard


-----Original Message-----
From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov] 
Sent: Tuesday, August 21, 2007 12:12 PM
To: user-java@ibatis.apache.org
Subject: RE: TransactionManager thorowing NPE


Well, bcak to it: 
<CODE> 
                //TEST 
                DataSource dataSource = null; 
                try{ 
                        Context initContext = new InitialContext(); 
                        dataSource = (DataSource)
initContext.lookup("java:REALNAME"); 
                } catch (NamingException ne){ 
                        ne.printStackTrace(); 
                        System.out.println("  NamingException: " +
ne.getMessage()); 
                } 
 
                System.out.println("  dataSource: " + dataSource);
</CODE> 

This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e 

So I got that goin' for me..... 

Still get the NPE..... 

 Caused by: java.lang.NullPointerException 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Manager.java:108) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDaoTemplate.java:60) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.java:142) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
r.java:41) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more 
2007-08-21 15:08:26,733 INFO  [STDOUT]
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
returning. 









Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

  DataSource dataSource = (DataSource)
initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> Pretty straight forward....I assume we are using some default
Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
> 
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch
call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
nt(U
nk
>> nown Source) 
>> at 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
soci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>> at 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Mana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 







RE: TransactionManager thorowing NPE

Posted by "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>.
Is this what you are using for your sqlmap-config.xml?

> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
>  
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig> 

If so, I think your property setting for your JNDI datasource is
incorrect. I think it should be:
<property name="DataSource" value="java:DATASOURCE"/>

Notice that the property name is DataSource, not DBJndiContext

-Richard


-----Original Message-----
From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov] 
Sent: Tuesday, August 21, 2007 12:12 PM
To: user-java@ibatis.apache.org
Subject: RE: TransactionManager thorowing NPE


Well, bcak to it: 
<CODE> 
                //TEST 
                DataSource dataSource = null; 
                try{ 
                        Context initContext = new InitialContext(); 
                        dataSource = (DataSource)
initContext.lookup("java:REALNAME"); 
                } catch (NamingException ne){ 
                        ne.printStackTrace(); 
                        System.out.println("  NamingException: " +
ne.getMessage()); 
                } 
                
                System.out.println("  dataSource: " + dataSource);
</CODE> 

This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e 

So I got that goin' for me..... 

Still get the NPE..... 

 Caused by: java.lang.NullPointerException 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Manager.java:108) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDaoTemplate.java:60) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.java:142) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
r.java:41) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more 
2007-08-21 15:08:26,733 INFO  [STDOUT]
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
returning. 









Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

  DataSource dataSource = (DataSource)
initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> Pretty straight forward....I assume we are using some default
Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
>  
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch
call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
nt(U
nk
>> nown Source) 
>> at 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
soci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>> at 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Mana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 





RE: TransactionManager thorowing NPE

Posted by "Yee, Richard K CTR DMDC" <Ri...@osd.pentagon.mil>.
Are you running in a debugger and have you stepped into the source code
to find out where the NPE is happening?

-R
 

-----Original Message-----
From: chris.mccauley@gsa.gov [mailto:chris.mccauley@gsa.gov] 
Sent: Tuesday, August 21, 2007 12:12 PM
To: user-java@ibatis.apache.org
Subject: RE: TransactionManager thorowing NPE


Well, bcak to it: 
<CODE> 
                //TEST 
                DataSource dataSource = null; 
                try{ 
                        Context initContext = new InitialContext(); 
                        dataSource = (DataSource)
initContext.lookup("java:REALNAME"); 
                } catch (NamingException ne){ 
                        ne.printStackTrace(); 
                        System.out.println("  NamingException: " +
ne.getMessage()); 
                } 
                
                System.out.println("  dataSource: " + dataSource);
</CODE> 

This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource:
org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e 

So I got that goin' for me..... 

Still get the NPE..... 

 Caused by: java.lang.NullPointerException 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Manager.java:108) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDaoTemplate.java:60) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.java:142) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
r.java:41) 
2007-08-21 15:08:26,733 INFO  [STDOUT]         ... 25 more 
2007-08-21 15:08:26,733 INFO  [STDOUT]
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet
returning. 









Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw
one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

  DataSource dataSource = (DataSource)
initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
wrote:

> Pretty straight forward....I assume we are using some default
Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
>  
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch
call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
nt(U
nk
>> nown Source) 
>> at 
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
soci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>> at 
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Mana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 





RE: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
Well, bcak to it:
<CODE>
                //TEST
                DataSource dataSource = null;
                try{
                        Context initContext = new InitialContext();
                        dataSource = (DataSource) initContext.lookup(
"java:REALNAME");
                } catch (NamingException ne){
                        ne.printStackTrace();
                        System.out.println("  NamingException: " + 
ne.getMessage());
                }
 
                System.out.println("  dataSource: " + dataSource);
</CODE>

This test returns : 2007-08-21 15:08:25,852 INFO  [STDOUT]   dataSource: 
org.jboss.resource.adapter.jdbc.WrapperDataSource@1d4ee7e

So I got that goin' for me.....

Still get the NPE.....

 Caused by: java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  at 
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManager.java:108)
2007-08-21 15:08:26,733 INFO  [STDOUT]  at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTemplate.java:60)
2007-08-21 15:08:26,733 INFO  [STDOUT]  at 
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java:142)
2007-08-21 15:08:26,733 INFO  [STDOUT]  at 
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrapper.java:41)
2007-08-21 15:08:26,733 INFO  [STDOUT]  ... 25 more
2007-08-21 15:08:26,733 INFO  [STDOUT] gov.gsa.base.exception.DAOException 
: java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO  [STDOUT]  RemoveAttachmentServlet returning.









Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

   DataSource dataSource = (DataSource) initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov> 
wrote:

> Pretty straight forward....I assume we are using some default 
Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
> 
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(U
nk
>> nown Source) 
>> at 
> gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssoci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>> at 
> 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoMana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 




RE: TransactionManager thorowing NPE

Posted by Clinton Begin <cl...@gmail.com>.
Ack, I hate NPEs, they're so embarrassing.  iBATIS should never throw one.
Once we find out why it does in this case, we'll fix it. 

The most likely source is this:   "java:DATASOURCE"

Make sure this works in your environment:

   DataSource dataSource = (DataSource) initCtx.lookup("java:DATASOURCE");

Clinton

-----Original Message-----
From: Christopher Lamey [mailto:clamey@localmatters.com] 
Sent: August-16-07 8:43 AM
To: user-java@ibatis.apache.org
Subject: Re: TransactionManager thorowing NPE

Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov> wrote:

> Pretty straight forward....I assume we are using some default Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
>  
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(U
nk
>> nown Source) 
>> at 
> gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
Fi
>> lterChain.java:252)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ai
>> n.java:173) 
>> at 
>> 
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.ja
va
>> :81) 
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
Fi
>> lterChain.java:202)
>> at 
>> 
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ai
>> n.java:173) 
>> at 
>> 
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va
>> :213) 
>> at 
>> 
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va
>> :178) 
>> at 
>> 
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalVal
ve
>> .java:39) 
>> at 
>> 
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssoci
at
>> ionValve.java:159)
>> at 
>> 
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.j
>> ava:407) 
>> at 
>> 
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
59
>> ) 
>> 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
:1
>> 07) 
>> at 
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>> at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>> at 
>> 
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ct
>> ion(Http11Protocol.java:744)
>> at 
>> 
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:
>> 527) 
>> at 
>> 
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThre
ad
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoMana
ge
>> r.java:108) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDao
Te
>> mplate.java:60) 
>> at 
>> 
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.ja
va
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 


Re: TransactionManager thorowing NPE

Posted by Christopher Lamey <cl...@localmatters.com>.
Well, that looks ok.

Could the transaction be closed or committed early, before the delete?

On 8/16/07 6:12 AM, "chris.mccauley@gsa.gov" <ch...@gsa.gov> wrote:

> Pretty straight forward....I assume we are using some default Transaction
> Manager..
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
>     <settings useStatementNamespaces="false" />
>  
>     <!-- JNDI Example -->
>         <transactionManager type="JDBC">
>                 <dataSource type="JNDI">
>                         <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
>                 </dataSource>
>         </transactionManager>
> 
>         <sqlMap resource="dao/File1.xml" />
>         <sqlMap resource="dao/File2.xml" />
>         <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
> 
> 
> 
> Thank you, 
> Christopher
> 
> 
> 
> 
> What does your transaction configuration look like?  What transaction
> manager are you using?
> 
> 
> On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov>
> wrote:
> 
>> 
>> I am accessing a servlet ( within same app context) with an asynch call
> from a
>> struts app.  Part of the work is a database call (delete) usig iBatis
> SQLMap.
>> 
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>> 
>> Seems like a Transaction issue? Any ideas?
>> 
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at 
>> 
> gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(Unk
>> nown Source) 
>> at 
> gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source) 
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
>> lterChain.java:252)
>> at 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
>> n.java:173) 
>> at 
>> 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java
>> :81) 
>> at 
>> 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
>> lterChain.java:202)
>> at 
>> 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
>> n.java:173) 
>> at 
>> 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java
>> :213) 
>> at 
>> 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java
>> :178) 
>> at 
>> 
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve
>> .java:39) 
>> at 
>> 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociat
>> ionValve.java:159)
>> at 
>> 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.j
>> ava:407) 
>> at 
>> 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59
>> ) 
>> 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:1
>> 07) 
>> at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>> at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>> at 
>> 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnect
>> ion(Http11Protocol.java:744)
>> at 
>> 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
>> 527) 
>> at 
>> 
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread
>> .java:112) 
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at 
>> 
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManage
>> r.java:108) 
>> at 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTe
>> mplate.java:60) 
>> at 
>> 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java
>> :142) 
>> ... 26 more 
>>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Thank you, 
>> Christopher
>> 
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> chris.mccauley@gsa.gov
>> chris.mccauley@unisys.com
> 
> 
> 
> 


Re: TransactionManager thorowing NPE

Posted by ch...@gsa.gov.
Pretty straight forward....I assume we are using some default Transaction 
Manager..

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 
2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
    <settings useStatementNamespaces="false" />
 
    <!-- JNDI Example -->
        <transactionManager type="JDBC">
                <dataSource type="JNDI">
                        <property name="DBJndiContext" value=
"java:DATASOURCE"/>
                </dataSource>
        </transactionManager>

        <sqlMap resource="dao/File1.xml" />
        <sqlMap resource="dao/File2.xml" />
        <sqlMap resource="dao/File3.xml" />
</sqlMapConfig>



Thank you, 
Christopher




What does your transaction configuration look like?  What transaction
manager are you using?


On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov> 
wrote:

> 
> I am accessing a servlet ( within same app context) with an asynch call 
from a
> struts app.  Part of the work is a database call (delete) usig iBatis 
SQLMap.
> 
> We have no issues with iBatis prior, (except performance, but thats a
> different thread :>) )
> 
> Seems like a Transaction issue? Any ideas?
> 
> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
> at 
> 
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(Unk
> nown Source) 
> at 
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
> Source) 
> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at 
> 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
> lterChain.java:252)
> at 
> 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
> n.java:173) 
> at 
> 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java
> :81) 
> at 
> 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
> lterChain.java:202)
> at 
> 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
> n.java:173) 
> at 
> 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java
> :213) 
> at 
> 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java
> :178) 
> at 
> 
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve
> .java:39) 
> at 
> 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociat
> ionValve.java:159)
> at 
> 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.j
> ava:407) 
> at 
> 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59
> ) 
> 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:1
> 07) 
> at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at 
> 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnect
> ion(Http11Protocol.java:744)
> at 
> 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
> 527) 
> at 
> 
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread
> .java:112) 
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
> at 
> 
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManage
> r.java:108) 
> at 
> 
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTe
> mplate.java:60) 
> at 
> 
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java
> :142) 
> ... 26 more 
>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com





Re: TransactionManager thorowing NPE

Posted by Christopher Lamey <cl...@localmatters.com>.
What does your transaction configuration look like?  What transaction
manager are you using?


On 8/15/07 3:28 PM, "chris.mccauley@gsa.gov" <ch...@gsa.gov> wrote:

> 
> I am accessing a servlet ( within same app context) with an asynch call from a
> struts app.  Part of the work is a database call (delete) usig iBatis SQLMap.
> 
> We have no issues with iBatis prior, (except performance, but thats a
> different thread :>) )
> 
> Seems like a Transaction issue? Any ideas?
> 
> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
> at 
> gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachment(Unk
> nown Source) 
> at gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
> Source) 
> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
> lterChain.java:252)
> at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
> n.java:173) 
> at 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java
> :81) 
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFi
> lterChain.java:202)
> at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChai
> n.java:173) 
> at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java
> :213) 
> at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java
> :178) 
> at 
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve
> .java:39) 
> at 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociat
> ionValve.java:159)
> at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.j
> ava:407) 
> at 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59
> ) 
> 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:1
> 07) 
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnect
> ion(Http11Protocol.java:744)
> at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
> 527) 
> at 
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread
> .java:112) 
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
> at 
> com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManage
> r.java:108) 
> at 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTe
> mplate.java:60) 
> at 
> com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java
> :142) 
> ... 26 more 
>  gov.gsa.base.exception.DAOException : java.lang.NullPointerException
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Thank you, 
> Christopher
> 
> ~~~~~~~~~~~~~~~~~
> Christopher McCauley
> Unisys Consultant
> GSA - Federal Acquisition Service
> CP3 11028B
> (703) 605 9160
> chris.mccauley@gsa.gov
> chris.mccauley@unisys.com