[Building Sakai] Error in MELETE TOOL in PRODUCTION Environment

Rashmi Maheshwari rashmi at etudes.org
Mon Jul 16 07:42:54 PDT 2012


Hi Gautham,
I would recommend you to upgrade to Melete 2.8.2. This error has been 
fixed a while back.

thanks,
Rashmi

On 7/14/2012 4:27 AM, gautham gorle wrote:
> Hi mallika,
>
> We are using Melete 2.6 with Oracle10g Database. This Error is not coming in
> local development systems and it is coming in  PRODUCTION ENVIRONMENT ( 4
> Tomcat Servers
>> with Load Balancer).
> Best Regards,
> Gautham
>
>
> mallikamt wrote:
>> 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
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>>
>>




More information about the sakai-dev mailing list