[Building Sakai] Gradebook bug reports after MySQL upgrade

Bryan Bakotich bakotibj at plu.edu
Mon May 3 15:24:56 PDT 2010


Should have also noted that we are running Sakai version 2.6.x revision
69729
-Bryan

On Mon, May 3, 2010 at 3:20 PM, Bryan Bakotich <bakotibj at plu.edu> wrote:

> Hi all,
>
> We recently upgraded from MySQL 4.1 to 5.1 and ever since then we receive a
> couple of the same bugs every day from various users trying to save grades
> in the gradebook (see the stack trace below). It looks like it is related to
> this jira, http://jira.sakaiproject.org/browse/SAK-10847 , which we saw a
> much less frequently before the MySQL upgrade.
>
> In each case when I talked to users that ran into the bug they said they
> were entering grades for a gradebook item and saw this error upon trying to
> submit the entered scores. They usually run into this bug once or twice and
> then the submission finally goes through without generating the bug report.
> Because of this I have not yet been able to reproduce the bug. Does anyone
> have any ideas why this is happening? I am a little lost and could
> definitely use a push in the right direction. Thanks.
>
> -Bryan
>
> org.sakaiproject.portal.api.
> PortalHandlerException: org.sakaiproject.tool.api.ToolException: Exception
> while invoking expression #{assignmentDetailsBean.processUpdateScores}
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:70)
> caused by: org.sakaiproject.tool.api.ToolException: Exception while
> invoking expression #{assignmentDetailsBean.processUpdateScores}
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
> caused by: javax.servlet.ServletException: Exception while invoking
> expression #{assignmentDetailsBean.processUpdateScores}
>    at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> caused by: javax.faces.el.EvaluationException: Exception while invoking
> expression #{assignmentDetailsBean.processUpdateScores}
>    at javax.faces.component.UICommand.broadcast(UICommand.java:89)
> caused by: org.springframework.dao.DataIntegrityViolationException: could
> not insert: [org.sakaiproject.tool.gradebook.AssignmentGradeRecord]; nested
> exception is org.hibernate.exception.ConstraintViolationException: could not
> insert: [org.sakaiproject.tool.gradebook.AssignmentGradeRecord]
>    at
> org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
> caused by: org.hibernate.exception.ConstraintViolationException: could not
> insert: [org.sakaiproject.tool.gradebook.AssignmentGradeRecord]
>    at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
> caused by:
> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
> Duplicate entry '21736-0474a9e1-2a6c-4546-a3b9-ea798a3ad3e2' for key
> 'GRADABLE_OBJECT_ID'
>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
>    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
>    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
>    at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
>    at
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
>    at
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
>    at
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
>    at
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
>    at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>    at
> org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73)
>    at
> org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
>    at
> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
>    at
> org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
>    at
> org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
>    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
>    at
> org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
>    at
> org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
>    at
> org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
>    at
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
>    at
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>    at
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
>    at
> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>    at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
>    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
>    at sun.reflect.GeneratedMethodAccessor2246.invoke(null:-1)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at
> org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1202)
>    at $Proxy23.saveOrUpdate(null:-1)
>    at
> org.sakaiproject.tool.gradebook.business.impl.GradebookManagerHibernateImpl$7.doInHibernate(GradebookManagerHibernateImpl.java:706)
>    at
> org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
>    at
> org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:338)
>    at
> org.sakaiproject.tool.gradebook.business.impl.GradebookManagerHibernateImpl.updateAssignmentGradeRecords(GradebookManagerHibernateImpl.java:735)
>    at
> org.sakaiproject.tool.gradebook.business.impl.GradebookManagerHibernateImpl.updateAssignmentGradeRecords(GradebookManagerHibernateImpl.java:2101)
>    at
> org.sakaiproject.tool.gradebook.business.impl.GradebookManagerHibernateImpl.updateAssignmentGradesAndComments(GradebookManagerHibernateImpl.java:917)
>    at sun.reflect.GeneratedMethodAccessor5515.invoke(null:-1)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
>    at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
>    at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
>    at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
>    at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
>    at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>    at $Proxy125.updateAssignmentGradesAndComments(null:-1)
>    at
> org.sakaiproject.tool.gradebook.ui.AssignmentDetailsBean.saveScores(AssignmentDetailsBean.java:463)
>    at
> org.sakaiproject.tool.gradebook.ui.AssignmentDetailsBean.processUpdateScores(AssignmentDetailsBean.java:454)
>    at sun.reflect.GeneratedMethodAccessor18718.invoke(null:-1)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at
> org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
>    at javax.faces.component.UICommand.broadcast(UICommand.java:89)
>    at
> javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
>    at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
>    at
> org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
>    at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
>    at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
>    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
>    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:565)
>    at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>    at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
> org.sakaiproject.tool.gradebook.ui.RoleFilter.doFilter(RoleFilter.java:145)
>    at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>    at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
>    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:679)
>    at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
>    at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
>    at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>    at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
>    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:679)
>    at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
>    at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
>    at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>    at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:479)
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1216)
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:188)
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:93)
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:70)
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1059)
>    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:616)
>    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:283)
>    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>    at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>    at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>    at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>    at java.lang.Thread.run(Thread.java:595)
>
>
> --
> Bryan Bakotich
> Open Source Implementation Specialist
> Digital Media Center, Information & Technology Services
> Pacific Lutheran University
> Tacoma, WA 98447-0013
> Phone: 253-536-5021
>



-- 
Bryan Bakotich
Open Source Implementation Specialist
Digital Media Center, Information & Technology Services
Pacific Lutheran University
Tacoma, WA 98447-0013
Phone: 253-536-5021
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20100503/c102eba3/attachment.html 


More information about the sakai-dev mailing list