Hi,
just to clarify - you are on JDK 1.4.x? Does this happen on JDK 1.3.x as
well?
Regards,
Burkhard

----- Original Message -----
From: "Arijit Ghosh" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 08, 2002 11:07 PM
Subject: [JBoss-user] Undeclared Throwable Exception


>
> Hi,
>
>         I'm using container managed transaction of Jboss 3.0 with Tomcat
> 4.0.3.  We are using the Struts framework and Castor.
>
>         When i try to modify an existing object, the first time it works
> fine. the next time it throws the
> exception given below. Again the third time it works, 4th time exception
> and so on..
> However if we try to modify object1 for the first time, there is no
> problem. Then we modfy object2 for the first time, there is no problem.
> If we now try to modify object1 again i.e. for the 2nd time, exception
> is thrown.
>
>
> First 2 set of codes are Deployment descriptor, ejb-jar.xml and Vendor
> specific file jboss.xml
>
> modifyClientDetails() is first called from Action class. This in turn
> calls the corresponding method in the clientManagerBean.The method in
> the Bean performs 2 calls, 1st calls findByPrimaryKey() defined in
> CastorMain. This performs database operation. 2nd, it calls populate()
> [which is not a database call]. findByPrimaryKey() in CastorMain
> performs the following oeration --
> db = dobj.getDatabase();
> aData = db.load(aClass, aKey);
>
> EXCEPTION is shown at the end.
>
> Error seems to be on the client side and not on the Server side.
>
>
>
> EJB-JAR.XML
>
>
>   <?xml version="1.0" encoding="UTF-8"?>
>   <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 2.0//EN"
> "http://java.sun.com/dtd/ejb-jar_2_0.dtd";>
>
>   <ejb-jar >
>
>      <description>No Description.</description>
>      <display-name>Generated by XDoclet</display-name>
>
>      <enterprise-beans>
>
>         <!-- Session Beans -->
>         <session >
>            <description><![CDATA[The ClientManager Session
> Bean]]></description>
>            <display-name>Client Manager Session Bean</display-name>
>
>            <ejb-name>client/ClientManager</ejb-name>
>
>
>
<home>com.softex.itesoverseer.server.ejb.interfaces.ClientManagerHome</home>
>
>
>
<remote>com.softex.itesoverseer.server.ejb.interfaces.ClientManager</remote>
>
>
>
<ejb-class>com.softex.itesoverseer.server.ejb.session.ClientManagerBean</ejb
-class>
>
>            <session-type>Stateless</session-type>
>            <transaction-type>Container</transaction-type>
>
>            <resource-ref>
>               <res-ref-name>jdo/mydb</res-ref-name>
>               <res-type>org.exolab.castor.jdo.DataObjects</res-type>
>               <res-auth>Container</res-auth>
>            </resource-ref>
>
>         </session>
>
>      </enterprise-beans>
>
>      <!-- Assembly Descriptor -->
>      <assembly-descriptor >
>
>     <container-transaction>
>      <method>
>       <ejb-name>client/ClientManager</ejb-name>
>       <method-name>*</method-name>
>      </method>
>      <trans-attribute>Required</trans-attribute>
>
>     </container-transaction>
>
>      </assembly-descriptor>
>
>   </ejb-jar>
>
>
>
> JBOSS.XML
>
>
>  <?xml version="1.0" encoding="UTF-8"?>
>  <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS//EN"
> "http://www.jboss.org/j2ee/dtd/jboss.dtd";>
>
>  <jboss>
>
>    <enterprise-beans>
>
>     <session>
>       <ejb-name>client/ClientManager</ejb-name>
>       <jndi-name>ejb/client/ClientManager</jndi-name>
>     </session>
>    </enterprise-beans>
>
>    <resource-managers>
>     <resource-manager
> res-class="org.jboss.ejb.deployment.CastorJDOResource">
>       <res-name>jdo/mydb</res-name>
>       <res-jndi-name>java:/jdo/mydb</res-jndi-name>
>     </resource-manager>
>    </resource-managers>
>
>  </jboss>
>
>
>
>
>
>
> Here is the code -
>
> ActionClass
> {
>
> //Actionclass calls the modifyClientDetails method of the session bean.
>
> clientManager.modifyClientDetails(oClientEntity);
> log.info("After calling modifyClientDetails in  action");
>
>
> }catch (java.lang.reflect.UndeclaredThrowableException ex){
>   //java.lang.reflect.UndeclaredThrowableException is thrown with an
> UndeclaredThrowable.
>   //printint out getUndeclaredThrowable
>     Throwable throwable = ex.getUndeclaredThrowable();
>     log.error("STACK TRACE STARTS");
>     log.error("ex.getUndeclaredThrowable",throwable);
>     log.error("STACK TRACE ENDS");
>     throw ex;
>  }catch(Exception e) {
>    log.error("Unexpected error ="+e.getMessage(),e);
>    throw e;
>  }
> }
>
>
>
>
> ClientManagerBean
> {
>
> //modifyClientDetails of Session bean. Calls the findByPrimaryKey method
> of helper class.
> public void modifyClientDetails(Client aClient) throws
> ApplicationException {
> ClientJDO clientJDO = null;
> System.out.println("in DAO "+aClient.getClientID());
> try {
>  //retrieves object.
>  clientJDO =  (ClientJDO)castor.findByPrimaryKey(ClientJDO.class, new
> Long(aClient.getClientID()));
>  //modifies properties of object.
>  BeanUtils.populate(clientJDO,BeanUtils.describe(aClient));
> }
> catch (CastorException e) {
>  throw new ApplicationException(e.getMessageKey(), e);
> }
> catch (Exception e) {
> throw new ApplicationException("error.apperror", e);
> }
> }
>
>
>
> CastorMain
> {
> ......
>
> //method called in helper class - CastorMain
> public Object findByPrimaryKey(Class aClass, Object aKey) throws
> CastorException
>   {
>     OQLQuery      findOql;
>     Object aData
>     try
>     {
>  db = dobj.getDatabase();
>         aData = db.load(aClass, aKey);
>     }
>     catch(Exception e)
>     {
>         throw new CastorException("error.generalJDOError", e);
>     }
>     finally
>     {
>       try
>       {
>         if(db!= null)  then db.close();
>         log.debug("connection closed");
>       }
>       catch(PersistenceException e)
>       {
>         throw new CastorException("error.generalJDOError",e);
>       }
>     }
>     return aData;
>   }
>
>
>
>
> EXCEPTION
>
>
> 2002-08-01 20:16:27,960 INFO
> [com.softex.itesoverseer.server.servlet.action.ClientAction] Entered in
> Client Module
> 2002-08-01 20:16:28,450 INFO
> [com.softex.itesoverseer.server.ejb.session.ClientManagerBean] before
> modify in Bean
> 2002-08-01 20:16:28,510 DEBUG
> [com.softex.itesoverseer.server.ejb.dao.CastorMain] connection closed
> 2002-08-01 20:16:28,510 INFO
> [com.softex.itesoverseer.server.ejb.session.ClientManagerBean] After
> modify in Bean
> 2002-08-01 20:16:28,620 ERROR
> [com.softex.itesoverseer.server.servlet.action.ClientAction] STACK TRACE
> STARTS
> 2002-08-01 20:16:28,950 ERROR
> [com.softex.itesoverseer.server.servlet.action.ClientAction]
> ex.getUndeclaredThrowable
> javax.transaction.RollbackException: Unable to commit, tx=XidImpl
> [FormatId=257, GlobalId=sham//14, BranchQual=]
> status=STATUS_ROLLEDBACK at
> org.jboss.tm.TxCapsule.commit(TxCapsule.java:389)
>  at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:74)
>  at
>
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:190)
>
>  at
> org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61)
>  at
>
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
9)
>
>  at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
>
>  at
>
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:313)
>
>  at org.jboss.ejb.Container.invoke(Container.java:705)
>  at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
>
>  at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
>
>  at
>
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
>
>  at
>
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73
)
>
>  at
> org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)
>  at
>
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInter
ceptor.java:111)
>
>  at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
>  at $Proxy25.modifyClientDetails(Unknown Source)
>  at
>
com.softex.itesoverseer.server.servlet.action.ClientAction.execute(ClientAct
ion.java:140)
>
>  at
>
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:437)
>
>  at
>
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
>
>  at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
>  at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
>
>  at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
>
>  at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>
>  at
>
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
>
>  at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>
>  at
>
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>
>  at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>
>  at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>
>  at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>  at
>
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
>
>  at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
>
>  at java.lang.Thread.run(Thread.java:484)
> 2002-08-01 20:16:29,000 ERROR
> [com.softex.itesoverseer.server.servlet.action.ClientAction] STACK TRACE
> ENDS
>
>
>
> Thanks in advance
>
> Regards,
>  Arijit
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to