I'm catching a CreateException from BMP Entity bean in a Stateless session
bean.  The CreateException occurs because of a duplicate key already in the
db (yes, I'll eventually use a DuplicateKeyException...)  In the catch, I 
then try to do a Finder to get the existing bean from the db so that I can 
later update that record in the db (instead of inserting it).
However, my Finder returns a FinderException saying no results are found, 
though running the same sql manually works fine (finds the records that
already exists in the db).  Indeed, the same finder is called later 
through a jsp (in a round about way) and it works fine.  
Using JBoss 2.2.1.

Here's the offending code from the SSB:

public SavedQueryModel saveQuery( SavedQueryModel m) throws RemoteException {
    try {
        ControlEJBUtil.getSavedQueryHome().create(m);
    } catch (RemoteException re) {
        cat.debug(re);
    } catch (CreateException ce) {
        cat.debug(ce.toString());
        try {
            SavedQueryEJB = ControlEJBUtil.getSavedQueryHome().findByQuery
NameAndUser(m.getQueryName(), m.getUserID());
            SavedQueryEJB = ControlEJBUtil.getSavedQueryHome().findByPrima
ryKey( new SavedQueryPrimaryKey(m.getUserID(), m.getQueryName()));
            Collection duh = ControlEJBUtil.getSavedQueryHome().findAllSaved
QueriesForUser(m.getUserID());
            //would like to do the update stuff here....
        } catch (RemoteException re) {
            cat.debug(re.toString());
            throw new GeneralFailureException(re);
        } catch (FinderException fe) {
            cat.debug(fe.toString());
            throw new GeneralFailureException(fe);
        }
    }
    return m;
}

None of those finders work in the catch for some reason: all say no results..
Below is exception and some debugging stuff when the previous is run 
with the first two finder calls above commented out.

Thanks.
Mike



DEBUG sai.mbz.dat.generic.GenericDAO  - insertString is: 'INSERT INTO
mbz_saved_queries VALUES ('15', 'Test8', '603', '-6', '', 'B200H', '', 'f',
'f')'
2000384 [Thread-14] DEBUG sai.mbz.control.savedquery.SavedQueryControllerEJB
- javax.ejb.CreateException: SQL Error: java.sql.SQLException: ERROR:
  Cannot insert a duplicate key into unique index mbz_saved_queries_pkey

(that's the CreateException I expected, but below I get a FinderException)

2001630 [Thread-14] DEBUG sai.mbz.dat.generic.GenericDAO  - queryString is:
'SELECT DISTINCT user_id, query_name  FROM mbz_saved_queries WHERE user_id='15''
2001634 [Thread-14] DEBUG sai.mbz.control.savedquery.SavedQueryControllerEJB
- javax.ejb.FinderException: SQL Error: No results were returned by the query.
[SavedQueryControllerHome] TRANSACTION ROLLBACK EXCEPTION:null; nested exception is: 
        sai.mbz.util.GeneralFailureException
[SavedQueryControllerHome] javax.ejb.FinderException: SQL Error: No results
were returned by the query.
[SavedQueryControllerHome]      at 
sai.mbz.dat.savedquery.SavedQueryEJB.ejbFindAllSavedQueriesForUser(SavedQueryEJB.java:90)
[SavedQueryControllerHome]      at java.lang.reflect.Method.invoke(Native Method) 
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:458)
 
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.BMPPersistenceManager.findEntities(BMPPersistenceManager.java:221)
[SavedQueryControllerHome]      at 
org.jboss.ejb.EntityContainer.find(EntityContainer.java:392)
[SavedQueryControllerHome]      at java.lang.reflect.Method.invoke(Native Method)
[SavedQueryControllerHome]      at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:639)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:160)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:87)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:135)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:164)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[SavedQueryControllerHome]      at 
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:316)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:436)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:212)
[SavedQueryControllerHome]      at $Proxy138.findAllSavedQueriesForUser(Unknown Source)
[SavedQueryControllerHome]      at 
sai.mbz.control.savedquery.SavedQueryControllerEJB.saveQuery(SavedQueryControllerEJB.java:134)
[SavedQueryControllerHome]      at java.lang.reflect.Method.invoke(Native Method) 
[SavedQueryControllerHome]      at 
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:472)
 
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:87)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:133)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:190)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[SavedQueryControllerHome]      at 
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:271)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:482)
[SavedQueryControllerHome]      at 
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:152)
[SavedQueryControllerHome]      at $Proxy117.saveQuery(Unknown Source) 
[SavedQueryControllerHome]      at 
sai.mbz.control.savedquery.SavedQueryControllerWebImpl.saveQuery(SavedQueryControllerWebImpl.java:134)
[SavedQueryControllerHome]      at 
sai.mbz.control.savedquery.SavedQueryControllerWebImpl.saveQuery(SavedQueryControllerWebImpl.java:128)
[SavedQueryControllerHome]      at 
sai.mbz.control.web.RequestProcessor.processRequest(RequestProcessor.java:117)
[SavedQueryControllerHome]      at 
Main_0002ejspMain_jsp_350._jspService(Main_0002ejspMain_jsp_350.java:97)
[SavedQueryControllerHome]      at 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
[SavedQueryControllerHome]      at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[SavedQueryControllerHome]      at 
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
[SavedQueryControllerHome]      at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
[SavedQueryControllerHome]      at 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
[SavedQueryControllerHome]      at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[SavedQueryControllerHome]      at 
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
[SavedQueryControllerHome]      at 
org.apache.tomcat.core.Handler.service(Handler.java:286)
[SavedQueryControllerHome]      at 
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
[SavedQueryControllerHome]      at 
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
[SavedQueryControllerHome]      at 
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
[SavedQueryControllerHome]      at 
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
[SavedQueryControllerHome]      at 
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
[SavedQueryControllerHome]      at 
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
[SavedQueryControllerHome]      at java.lang.Thread.run(Thread.java:484)


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to