Hi all,
I am using the hibernate that comes with JBoss 4.0sp1 and am having this issue
which seems to be an EJB error rather than a hibernate error.
I am trying to update multiple entities of the same type in one transaction in
one session. If the transaction only has one entity that needs updating then
everything works fine. If I do the same process as with the one entity but do
it multiple times it fails!!
What follows are the two mapping xml files, the stacktrace, some hibernate
generated sql and the code between sessionFactory.openSession() and
session.close():
Anybody got ideas?
Cheers
Tom
Hibernate version:
Its the version with JBoss 4.0sp1
2.1.8 I think
Mapping documents: There are two documents that need consideration. A
TransportDestination has a TransportType and a TransportType has multiple
TransportDestinations.
TransportType:
<column name="id_transport_type" sql-type="integer" not-null="true"/>
tbltransporttype_id_transport_type_seq
<column name="transport_type" sql-type="char(64)" not-null="true"/>
<column name="session_name" sql-type="char(64)" not-null="true"/>
<one-to-many class="com.camp.common.transport.TransportDestination"/>
AND TransportDestination
<column name="id_destination" sql-type="integer" not-null="true"/>
tbltransportdestination_id_destination_seq
<column name="code" sql-type="char(3)" not-null="true"/>
<column name="name" sql-type="char(128)"/>
<column name="city" sql-type="char(128)" not-null="true"/>
<column name="state" sql-type="char(128)" not-null="true"/>
<column name="country" sql-type="char(128)" not-null="true"/>
<column name="listed" sql-type="boolean" not-null="true"/>
<many-to-one name="transportType"
class="com.camp.common.transport.TransportType" column="fk_id_transport_type"
not-null="true"/>
Code between sessionFactory.openSession() and session.close():
Note: _transport_destinations = java.util.List
// Open Session
sess = sf.openSession();
// Create Transaction
Transaction t = sess.beginTransaction();
TransportDestination dest;
t = sess.beginTransaction();
//repeat as many times as there are destinations in the list
for (int i = 0; i < _transport_destinations.size(); i++) {
//get the destination
dest = (TransportDestination) _transport_destinations.get(i);
if (_operation.equals(Globals.ADD))
sess.save(dest);
else if (_operation.equals(Globals.UPDATE))
sess.update(dest);
else if (_operation.equals(Globals.DELETE))
sess.delete(dest);
}
t.commit();
sess.close();
Full stack trace of any exception that occurs:
11:58:38,480 INFO [STDOUT] Hibernate: update tblTransportDestination set
code=?, name=?, city=?, state=?, country=?, listed=?, fk_id_transport_type=?
where id_destination=?
11:58:38,480 INFO [STDOUT] Hibernate: update tblTransportDestination set
code=?, name=?, city=?, state=?, country=?, listed=?, fk_id_transport_type=?
where id_destination=?
11:58:38,480 INFO [STDOUT] Hibernate: update tblTransportDestination set
code=?, name=?, city=?, state=?, country=?, listed=?, fk_id_transport_type=?
where id_destination=?
11:58:38,488 INFO [transportEJB] Leaving modifyTransportDestinations
11:58:38,565 ERROR [TxInterceptorBMT] Application error: BMT stateless bean
transport should complete transactions before returning (ejb1.1 spec, 11.6.1)
11:58:38,567 WARN [RequestProcessor] Unhandled Exception thrown: class
java.rmi.RemoteException
11:58:38,568 ERROR [Engine] StandardWrapperValve[camp]: Servlet.service() for
servlet camp threw exception
java.rmi.RemoteException: Application error: BMT stateless bean transport
should complete transactions before returning (ejb1.1 spec, 11.6.1)
at
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.checkStatelessDone(AbstractTxInterceptorBMT.java:208)
at
org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:157)
at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:856)
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at
org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy84.modifyTransportDestinations(Unknown Source)
at
com.camp.helpers.config.transport.TransportConfigHelper.modifyTransportDestinations(Unknown
Source)
at com.camp.actions.config.TransportConfigAction.execute(Unknown Source)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Name and version of the database you are using:
The generated SQL (show_sql=true):
11:58:38,480 INFO [STDOUT] Hibernate: update tblTransportDestination set
code=?, name=?, city=?, state=?, country=?, listed=?, fk_id_transport_type=?
where id_destination=?
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3872188#3872188
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3872188
-------------------------------------------------------
This SF.net email is sponsored by Demarc:
A global provider of Threat Management Solutions.
Download our HomeAdmin security software for free today!
http://www.demarc.com/info/Sentarus/hamr30
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user