[Building Sakai] Error in MELETE TOOL in PRODUCTION Environment

Mallika M Thoppay mallika at etudes.org
Fri Jul 13 09:14:48 PDT 2012


Gautham,

Which release of Melete are you using? What type of database is it 
connected to?

Thanks,
Mallika

On 7/13/2012 8:09 AM, gautham gorle wrote:
>
> Hi All,
>
> We are experienced the below Error in Melete tool in Sakai while editing the
> sections/lessons in Melete tool in PRODUCTION ENVIRONMENT ( 4 Tomcat Servers
> with Load Balancer) :
>
>
> 2012-07-04 15:12:09,963 ERROR TP-Processor40
> org.hibernate.event.def.AbstractFlushingEventListener - Could not
> synchronize database state with session
> org.hibernate.StaleObjectStateException: Row was updated or deleted by
> another transaction (or unsaved-value mapping was incorrect):
> [org.etudes.component.app.melete.Section#32839]
> 	at
> org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765)
> 	at
> org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407)
> 	at
> org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
> 	at
> org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
> 	at
> org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
> 	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
> 	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.etudes.component.app.melete.SectionDB.editSection(SectionDB.java:260)
> 	at
> org.etudes.component.app.melete.SectionServiceImpl.editSection(SectionServiceImpl.java:155)
> 	at
> org.etudes.tool.melete.EditSectionPage.saveHere(EditSectionPage.java:438)
> 	at org.etudes.tool.melete.EditSectionPage.save(EditSectionPage.java:498)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
> 	at
> com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:312)
> 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
> 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
> 	at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
> 	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:590)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:395)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
> 	at
> org.sakaiproject.jsf.util.HelperAwareJsfTool.dispatch(HelperAwareJsfTool.java:170)
> 	at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
> 	at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:486)
> 	at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1261)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:195)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:94)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:71)
> 	at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1094)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:642)
> 	at
> com.rsmart.sakai.kernel.request.BrandRequestFilter.doFilter(BrandRequestFilter.java:79)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
> 	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
> 	at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
> 	at java.lang.Thread.run(Thread.java:811)
> 2012-07-04 15:12:09,975 ERROR TP-Processor40
> org.etudes.component.app.melete.SectionDB - edit section stale object
> exceptionorg.hibernate.StaleObjectStateException: Row was updated or deleted
> by another transaction (or unsaved-value mapping was incorrect):
> [org.etudes.component.app.melete.Section#32839]
> org.etudes.api.app.melete.exception.MeleteException:
> edit_section_multiple_users
> 	at
> org.etudes.component.app.melete.SectionServiceImpl.editSection(SectionServiceImpl.java:160)
> 	at
> org.etudes.tool.melete.EditSectionPage.saveHere(EditSectionPage.java:438)
> 	at org.etudes.tool.melete.EditSectionPage.save(EditSectionPage.java:498)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
> 	at
> com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:312)
> 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
> 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
> 	at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
> 	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:590)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:395)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
> 	at
> org.sakaiproject.jsf.util.HelperAwareJsfTool.dispatch(HelperAwareJsfTool.java:170)
> 	at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
> 	at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
> 	at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:486)
> 	at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1261)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:195)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:94)
> 	at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:71)
> 	at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1094)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:642)
> 	at
> com.rsmart.sakai.kernel.request.BrandRequestFilter.doFilter(BrandRequestFilter.java:79)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
> 	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
> 	at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
> 	at java.lang.Thread.run(Thread.java:811)
>
>
>
> -------------------------------
>
> CODE FROM WHERE ERROR IS POPPING:
>
> public void editSection(Section section, MeleteResource melResource) throws
> MeleteException
> 	{
> 		try{
> 		     Session session = hibernateUtil.currentSession();
> 	         Transaction tx = null;
> 			try
> 			{
> 			  // set default values for not-null fields
> 				SectionResource secResource =
> (SectionResource)section.getSectionResource();
> 				if(secResource == null)
> 					secResource = new SectionResource();
>
> 				secResource.setSection(section);
> 				secResource.setResource(melResource);
>
> 			  section.setModificationDate(new java.util.Date());
> 			  section.setSectionResource(secResource);
>
> 		 // save object
> 		 	if (!session.isOpen()) session = hibernateUtil.currentSession();
> 		 	session.evict(section);
> 			  tx = session.beginTransaction();
> 			  	  if(melResource != null)
> 			  	 	 session.saveOrUpdate(melResource);
> 			  	  session.saveOrUpdate(secResource); // Error Line
> 			  	  session.saveOrUpdate(section);
> 				  session.flush();
> 				  tx.commit();
>
> 			  if (logger.isDebugEnabled()) logger.debug("commit transaction and edit
> section :" + section.getModuleId() + ","+section.getTitle());
> 	//		  updateExisitingResource(secResource);
> 			  return ;
>
> 	        }
>
> 			catch(StaleObjectStateException sose)
> 		     {
> 				if(tx !=null) tx.rollback();
> 				logger.error("edit section stale object exception" + sose.toString());
> 				throw sose;
> 		     }
> 			catch (HibernateException he)
> 				     {
> 						if(tx !=null) tx.rollback();
> 						logger.error("edit section HE exception" + he.toString());
> 						he.printStackTrace();
> 						throw he;
> 				     }
> 	       	finally{
> 	       			hibernateUtil.closeSession();
> 				 	}
> 		}
> 		catch(Exception ex){
> 				// Throw application specific error
> 			throw new MeleteException("add_section_fail");
> 			}
> 	}
>
>
> It would be helpful if anyone provide the resolution.
>
> Regards,
> Gautam


-- 
Mallika M Thoppay
Learning Systems Developer
Etudes Inc
http://etudes.org



More information about the sakai-dev mailing list