[jboss-user] [EJB 3.0] - Update record problems with EJB3

bcorbett8769 do-not-reply at jboss.com
Tue Feb 6 17:58:42 EST 2007


I am having quite a few problems updating a record in a webapp using
EJB3. I am using JBoss 4.0.5 GA with the EJB3 option installed. The database I am connecting to runs on an ISeries.  I can retrieve data lists fine, but I can't seem to change the record. Yes, I do know that my file is journaled. 

I would very much appreciate, if someone could spot something wrong, 
because I am clueless.



  | @Stateless
  | @Remote(MenuUserController.class)
  | public class MenuUserControllerBean implements MenuUserController {
  |    @PersistenceContext(unitName="menu400")
  |    EntityManager entityManager;
  |    
  | 
  |    /* (non-Javadoc)
  |     * @see usermanager.menu400.sessionremote.MenuUserController#updateUser(usermanager.menu400.util.MenuUserDetails)
  |     */
  |    @TransactionAttribute(TransactionAttributeType.REQUIRED)
  |    public void updateUser(MenuUserDetails rec) {
  |       M4puser req = entityManager.find(M4puser.class, rec.getUser());
  |       if (req != null) {
  |          
  |          if(!rec.getUser().equals(req.getUser().trim())) {
  |             req.setUser(rec.getUser());
  |          }
  |          if (!rec.getRstcpb().equals(req.getRstcpb().trim())) {
  |             req.setRstcpb(rec.getRstcpb());
  |          }
  |          if (!rec.getUserpw().equals(req.getUserpw().trim())) {
  |             req.setUserpw(rec.getUserpw());
  |          }
  |          if (!rec.getUsrsts().equals(req.getUsrsts().trim())) {
  |             req.setUsrsts(rec.getUsrsts());
  |          }
  |          if (!rec.getUname().equals(req.getUname().trim())) {
  |             req.setUname(rec.getUname());
  |          }
  |          
  |          //entityManager.flush();
  |       }   
  |    }
  | }
  | 
  | 

I get the following exception:

  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.impl.SessionImpl] opened session at timestamp: 4795603474034688
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.jdbc.JDBCContext] successfully registered Synchronization
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] Looking for a JTA transaction to join
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] Transaction already joined
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.loader.Loader] loading entity: [usermanager.menu400.entities.M4puser#CHCOPY]
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.jdbc.ConnectionManager] opening JDBC connection
  | 2007-02-06 16:40:29,403 DEBUG [org.hibernate.SQL] select m4puser0_.user as user2_0_, m4puser0_.umnsty as umnsty2_0_, m4puser0_.brkmq as brkmq2_0_, m4puser0_.atnpgm as atnpgm2_0_, m4puser0_.mnulvl as mnulvl2_0_, m4puser0_.grpmnu as grpmnu2_0_, m4puser0_.setpgm as setpgm2_0_, m4puser0_.usrf3 as usrf8_2_0_, m4puser0_.sysreq as sysreq2_0_, m4puser0_.atnlib as atnlib2_0_, m4puser0_.rstcpb as rstcpb2_0_, m4puser0_.rsttrm as rsttrm2_0_, m4puser0_.menu as menu2_0_, m4puser0_.userpw as userpw2_0_, m4puser0_.usrsts as usrsts2_0_, m4puser0_.uname as uname2_0_, m4puser0_.setlib as setlib2_0_, m4puser0_.usrnpw as usrnpw2_0_, m4puser0_.acctcd as acctcd2_0_, m4puser0_.brktrm as brktrm2_0_, m4puser0_.usrssn as usrssn2_0_, m4puser0_.hlplvl as hlplvl2_0_, m4puser0_.usrnpd as usrnpd2_0_, m4puser0_.brkmql as brkmql2_0_, m4puser0_.userpd as userpd2_0_ from menu400tdi.M4PUSER m4puser0_ where m4puser0_.user=?
  | 2007-02-06 16:40:29,575 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open ResultSet (open ResultSets: 0, globally: 0)
  | 2007-02-06 16:40:29,575 DEBUG [org.hibernate.loader.Loader] result row: EntityKey[usermanager.menu400.entities.M4puser#CHCOPY]
  | 2007-02-06 16:40:29,575 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close ResultSet (open ResultSets: 1, globally: 1)
  | 2007-02-06 16:40:29,575 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.engine.TwoPhaseLoad] resolving associations for [usermanager.menu400.entities.M4puser#CHCOPY]
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.engine.TwoPhaseLoad] done materializing entity [usermanager.menu400.entities.M4puser#CHCOPY]
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.engine.StatefulPersistenceContext] initializing non-lazy collections
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.loader.Loader] done entity load
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.event.def.AbstractFlushingEventListener] processing flush-time cascades
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.event.def.AbstractFlushingEventListener] dirty checking collections
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.event.def.AbstractFlushingEventListener] Flushed: 0 insertions, 1 updates, 0 deletions to 1 objects
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.event.def.AbstractFlushingEventListener] Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.pretty.Printer] listing entities:
  | 2007-02-06 16:40:29,591 DEBUG [org.hibernate.pretty.Printer] usermanager.menu400.entities.M4puser{usrssn=0, usrsts=A, sysreq=Y, setlib=          , mnulvl= , acctcd=               , brkmql=          , usrnpw=          , setpgm=          , menu=*NONE     , usrnpd=0, userpw=CHCOPY    , userpd=0, atnpgm=          , user=CHCOPY, rsttrm=Y, rstcpb=Y, uname=Copy Shooter Profile - CH - Test, brktrm=Y, grpmnu=N, atnlib=          , usrf3=Y, umnsty=F, brkmq=          , hlplvl= }
  | 2007-02-06 16:40:29,606 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
  | 2007-02-06 16:40:29,606 DEBUG [org.hibernate.jdbc.ConnectionManager] opening JDBC connection
  | 2007-02-06 16:40:29,606 DEBUG [org.hibernate.SQL] update menu400tdi.M4PUSER set umnsty=?, brkmq=?, atnpgm=?, mnulvl=?, grpmnu=?, setpgm=?, usrf3=?, sysreq=?, atnlib=?, rstcpb=?, rsttrm=?, menu=?, userpw=?, usrsts=?, uname=?, setlib=?, usrnpw=?, acctcd=?, brktrm=?, usrssn=?, hlplvl=?, usrnpd=?, brkmql=?, userpd=? where user=?
  | 2007-02-06 16:40:29,778 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] Could not synchronize database state with session
  | org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
  | 	at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
  | 	at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
  | 	at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:24)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2338)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2242)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2542)
  | 	at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
  | 	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
  | 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
  | 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
  | 	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
  | 	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
  | 	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
  | 	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
  | 	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:515)
  | 	at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1491)
  | 	at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1110)
  | 	at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324)
  | 	at org.jboss.tm.TxManager.commit(TxManager.java:240)
  | 	at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
  | 	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
  | 	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  | 	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:131)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:263)
  | 	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:58)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
  | 	at $Proxy83.updateUser(Unknown Source)
  | 	at usermanager.web.UserControllerBean.updateUserAction(UserControllerBean.java:60)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at com.sun.el.parser.AstValue.invoke(AstValue.java:130)
  | 	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
  | 	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
  | 	at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
  | 	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
  | 	at javax.faces.component.UICommand.broadcast(UICommand.java:106)
  | 	at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
  | 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
  | 	at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
  | 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
  | 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:438)
  | 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:426)
  | 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:269)
  | 	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:96)
  | 	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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
  | 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  | 	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  | 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  | 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  | 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  | 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  | 	at java.lang.Thread.run(Thread.java:595)
  | 2007-02-06 16:40:29,778 DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
  | 2007-02-06 16:40:29,778 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 1, globally: 1) (open ResultSets: 0, globally: 0)]
  | 2007-02-06 16:40:29,778 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] mark transaction for rollback
  | 2007-02-06 16:40:29,825 DEBUG [org.jboss.ejb3.entity.ManagedEntityManagerFactory] ************** closing entity managersession **************
  | 
  | 

Brian

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4012183#4012183

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4012183



More information about the jboss-user mailing list