Uploaded image for project: 'LAMS Development'
  1. LAMS Development
  2. LDEV-2510

No tool session is created for activities added to a support activity in Live-Edit

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4
    • Fix Version/s: 2.4
    • Component/s: Monitor
    • Labels:
      None

      Description

      When creating a support activity on a lesson (in Monitor via Live-Edit), the activities within the support activity after applying the changes, there are no session created for these activities. So when students try to access them they get "session does not exist"

      To replicate

      1.- Author a sequence
      2.- Start a lesson with that sequence
      3.- Go into Monitor and Live edit the session
      4.- Add a support activity and add activities to it
      5.- Apply changes

      6.- Go as learner and try to open a support activity.... BANG.. exception

        Activity

        Hide
        ernieg Ernie Ghiglione added a comment -
        Tested and closed
        Show
        ernieg Ernie Ghiglione added a comment - Tested and closed
        Hide
        ernieg Ernie Ghiglione added a comment -
        This is working for 2.3.5, but it isn't for 2.4
        Show
        ernieg Ernie Ghiglione added a comment - This is working for 2.3.5, but it isn't for 2.4
        Hide
        ernieg Ernie Ghiglione added a comment -
        When trying to replicate this to test in 2.4 after I apply changes I get this exception:

        2010-11-19 01:11:03,456 ERROR [AuthoringAction] Exception thrown getLearningDesignDetails
        org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
                at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
                at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
                at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
                at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
                at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
                at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
                at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2507)
                at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)
                at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
                at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
                at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
                at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
                at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)
                at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1141)
                at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
                at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
                at org.lamsfoundation.lams.tool.dao.hibernate.ToolSessionDAO.getToolSessionByLearner(ToolSessionDAO.java:81)
                at org.lamsfoundation.lams.tool.service.LamsCoreToolService.createToolSession(LamsCoreToolService.java:127)
                at org.lamsfoundation.lams.tool.service.LamsCoreToolService.createToolSessions(LamsCoreToolService.java:159)
                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:597)
                at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
                at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
                at $Proxy150.createToolSessions(Unknown Source)
                at org.lamsfoundation.lams.monitoring.service.MonitoringService.initToolSessionIfSuitable(MonitoringService.java:2081)
                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:597)
                at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
                at $Proxy179.initToolSessionIfSuitable(Unknown Source)
                at org.lamsfoundation.lams.authoring.service.AuthoringService.initialiseToolActivityForRuntime(AuthoringService.java:964)
                at org.lamsfoundation.lams.authoring.service.AuthoringService.finishEditOnFly(AuthoringService.java:646)
                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:597)
                at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
                at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
                at $Proxy178.finishEditOnFly(Unknown Source)
                at org.lamsfoundation.lams.authoring.web.AuthoringAction.finishLearningDesignEdit(AuthoringAction.java:146)
                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:597)
                at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
                at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
                at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
                at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
                at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
                at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.lamsfoundation.lams.web.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:142)
                at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
                at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.lamsfoundation.lams.web.session.SystemSessionFilter.doFilter(SystemSessionFilter.java:69)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
                at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
                at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
                at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
                at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                at org.lamsfoundation.lams.integration.security.SingleSignOn.invoke(SingleSignOn.java:121)
                at org.lamsfoundation.lams.integration.security.LoginRequestValve.invoke(LoginRequestValve.java:71)
                at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
                at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
                at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
                at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                at java.lang.Thread.run(Thread.java:662)
        Caused by: java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (temp file operation failed)
                at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1269)
                at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:955)
                at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:774)
                at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
                at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)


        It seems that there's a key constraint that fails here.


        Show
        ernieg Ernie Ghiglione added a comment - When trying to replicate this to test in 2.4 after I apply changes I get this exception: 2010-11-19 01:11:03,456 ERROR [AuthoringAction] Exception thrown getLearningDesignDetails org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)         at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)         at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2507)         at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)         at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)         at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)         at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)         at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)         at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1141)         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)         at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)         at org.lamsfoundation.lams.tool.dao.hibernate.ToolSessionDAO.getToolSessionByLearner(ToolSessionDAO.java:81)         at org.lamsfoundation.lams.tool.service.LamsCoreToolService.createToolSession(LamsCoreToolService.java:127)         at org.lamsfoundation.lams.tool.service.LamsCoreToolService.createToolSessions(LamsCoreToolService.java:159)         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:597)         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)         at $Proxy150.createToolSessions(Unknown Source)         at org.lamsfoundation.lams.monitoring.service.MonitoringService.initToolSessionIfSuitable(MonitoringService.java:2081)         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:597)         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)         at $Proxy179.initToolSessionIfSuitable(Unknown Source)         at org.lamsfoundation.lams.authoring.service.AuthoringService.initialiseToolActivityForRuntime(AuthoringService.java:964)         at org.lamsfoundation.lams.authoring.service.AuthoringService.finishEditOnFly(AuthoringService.java:646)         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:597)         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)         at $Proxy178.finishEditOnFly(Unknown Source)         at org.lamsfoundation.lams.authoring.web.AuthoringAction.finishLearningDesignEdit(AuthoringAction.java:146)         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:597)         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)         at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)         at org.lamsfoundation.lams.web.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:142)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)         at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)         at org.lamsfoundation.lams.web.session.SystemSessionFilter.doFilter(SystemSessionFilter.java:69)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)         at org.lamsfoundation.lams.integration.security.SingleSignOn.invoke(SingleSignOn.java:121)         at org.lamsfoundation.lams.integration.security.LoginRequestValve.invoke(LoginRequestValve.java:71)         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)         at java.lang.Thread.run(Thread.java:662) Caused by: java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (temp file operation failed)         at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1269)         at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:955)         at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:774)         at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268) It seems that there's a key constraint that fails here.

          People

          • Assignee:
            dronych Andrey Balan
            Reporter:
            ernieg Ernie Ghiglione
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development