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

Be able to remove/update and change order of threads

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.4, 2.3.5
    • Component/s: Tool Forum
    • Labels:
      None

      Description

      Post 2.1 life

      In order to be consistent with other tools, Forum should be able to move threads up and down as well as have the pen for edit and delete in the Topic view (see snap1)

        Activity

        Hide
        dronych Andrey Balan added a comment -
        done for 2.4 branch

        should I merge it to lams2_3_release as well?

        also there is one more label:
        label.authoring.basic.do.you.want.to.delete =Do you really want to delete this topic?
        Show
        dronych Andrey Balan added a comment - done for 2.4 branch should I merge it to lams2_3_release as well? also there is one more label: label.authoring.basic.do.you.want.to.delete =Do you really want to delete this topic?
        Hide
        ernieg Ernie Ghiglione added a comment -
        Yes, Andrey, please merge this to the 2_3_release branch as well.
        Show
        ernieg Ernie Ghiglione added a comment - Yes, Andrey, please merge this to the 2_3_release branch as well.
        Hide
        ernieg Ernie Ghiglione added a comment -
        The deleting option isn't working.

        I imported this design http://goo.gl/pVFd and then added a second topic to the second activity (which is a forum). Save and reopen....

        Then I delete the original topic, gave the OK confirmation and saved... reopened the activity and the old topic is still there.
        Show
        ernieg Ernie Ghiglione added a comment - The deleting option isn't working. I imported this design http://goo.gl/pVFd and then added a second topic to the second activity (which is a forum). Save and reopen.... Then I delete the original topic, gave the OK confirmation and saved... reopened the activity and the old topic is still there.
        Hide
        dronych Andrey Balan added a comment -
        fixed for Head branch

        there were several nasty problems (that existed before my changes).
        hopefully it's all in the past


        and actually, we might need to look through all hibernate queries available in Lams 2.4.
        as hibernate syntax changed a bit since last version used in lams 2.3.4
        Show
        dronych Andrey Balan added a comment - fixed for Head branch there were several nasty problems (that existed before my changes). hopefully it's all in the past and actually, we might need to look through all hibernate queries available in Lams 2.4. as hibernate syntax changed a bit since last version used in lams 2.3.4
        Hide
        dronych Andrey Balan added a comment -
        merged to lams2_3_release
        Show
        dronych Andrey Balan added a comment - merged to lams2_3_release
        Hide
        ernieg Ernie Ghiglione added a comment -
        Tested and closed on 2.3_release and head
        Show
        ernieg Ernie Ghiglione added a comment - Tested and closed on 2.3_release and head
        Hide
        jundirl Jun-Dir Liew added a comment -
        Hi,

        We updated a server with this code and found this error...

        2010-04-13 13:05:03,451 [TP-Processor3:] FATAL org.lamsfoundation.lams.web.util.CustomStrutsExceptionHandler - org.springframework.orm.hibernate3.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId
        org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId
                at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:203)
                at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:173)
                at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2900)
                at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)
                at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:510)
                at org.hibernate.loader.Loader.doQuery(Loader.java:419)
                at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)
                at org.hibernate.loader.Loader.doList(Loader.java:1561)
                at org.hibernate.loader.Loader.list(Loader.java:1544)
                at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
                at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
                at org.hibernate.impl.SessionImpl.list(SessionImpl.java:830)
                at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
                at org.springframework.orm.hibernate3.HibernateTemplate$31.doInHibernate(HibernateTemplate.java:853)
                at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
                at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)
                at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
                at org.lamsfoundation.lams.tool.forum.persistence.MessageDao.getRootTopics(MessageDao.java:78)
                at org.lamsfoundation.lams.tool.forum.service.ForumService.getRootTopics(ForumService.java:417)
                at sun.reflect.GeneratedMethodAccessor1107.invoke(Unknown Source)
                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:287)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)
                at $Proxy53.getRootTopics(Unknown Source)
                at org.lamsfoundation.lams.tool.forum.web.actions.LearningAction.viewForum(LearningAction.java:260)
                at org.lamsfoundation.lams.tool.forum.web.actions.LearningAction.execute(LearningAction.java:98)
                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:697)
                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.lamsfoundation.lams.web.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:142)
                at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                at org.lamsfoundation.lams.web.session.SystemSessionFilter.doFilter(SystemSessionFilter.java:71)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        ...
        Caused by: net.sf.cglib.beans.BulkBeanException
                at org.lamsfoundation.lams.tool.forum.persistence.Message$$BulkBeanByCGLIB$$968686c1.setPropertyValues(<generated>)
                at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:200)
                ... 69 more
        Caused by: java.lang.NullPointerException

        2010-04-13 13:05:03,453 [TP-Processor3:] ERROR org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter - Unexpected exception on closing Hibernate Session
        org.hibernate.HibernateException: Don't dereference a collection with cascade="all-delete-orphan": org.lamsfoundation.lams.tool.forum.persistence.Message.attachments
                at org.hibernate.engine.Collections.processDereferencedCollection(Collections.java:70)
                at org.hibernate.engine.Collections.processUnreachableCollection(Collections.java:38)
                at org.hibernate.event.def.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:211)
                at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:71)
                at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
                at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:716)
                at org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter.closeSession(CustomizedOpenSessionInViewFilter.java:77)
                at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:184)
                at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
                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.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
                at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
                at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                at org.lamsfoundation.lams.integration.security.SingleSignOn.invoke(SingleSignOn.java:121)
                at org.lamsfoundation.lams.integration.security.LoginRequestValve.invoke(LoginRequestValve.java:67)
                at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:481)
                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
                at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
                at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
                at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
                at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
                at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
                at java.lang.Thread.run(Thread.java:619)
                ... 71 more
        Show
        jundirl Jun-Dir Liew added a comment - Hi, We updated a server with this code and found this error... 2010-04-13 13:05:03,451 [TP-Processor3:] FATAL org.lamsfoundation.lams.web.util.CustomStrutsExceptionHandler - org.springframework.orm.hibernate3.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.lamsfoundation.lams.tool.forum.persistence.Message.setSequenceId         at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:203)         at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:173)         at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2900)         at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)         at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:510)         at org.hibernate.loader.Loader.doQuery(Loader.java:419)         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)         at org.hibernate.loader.Loader.doList(Loader.java:1561)         at org.hibernate.loader.Loader.list(Loader.java:1544)         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)         at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:830)         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)         at org.springframework.orm.hibernate3.HibernateTemplate$31.doInHibernate(HibernateTemplate.java:853)         at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)         at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)         at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)         at org.lamsfoundation.lams.tool.forum.persistence.MessageDao.getRootTopics(MessageDao.java:78)         at org.lamsfoundation.lams.tool.forum.service.ForumService.getRootTopics(ForumService.java:417)         at sun.reflect.GeneratedMethodAccessor1107.invoke(Unknown Source)         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:287)         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)         at $Proxy53.getRootTopics(Unknown Source)         at org.lamsfoundation.lams.tool.forum.web.actions.LearningAction.viewForum(LearningAction.java:260)         at org.lamsfoundation.lams.tool.forum.web.actions.LearningAction.execute(LearningAction.java:98)         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:697)         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.lamsfoundation.lams.web.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:142)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)         at org.lamsfoundation.lams.web.session.SystemSessionFilter.doFilter(SystemSessionFilter.java:71)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) ... Caused by: net.sf.cglib.beans.BulkBeanException         at org.lamsfoundation.lams.tool.forum.persistence.Message$$BulkBeanByCGLIB$$968686c1.setPropertyValues(<generated>)         at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:200)         ... 69 more Caused by: java.lang.NullPointerException 2010-04-13 13:05:03,453 [TP-Processor3:] ERROR org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter - Unexpected exception on closing Hibernate Session org.hibernate.HibernateException: Don't dereference a collection with cascade="all-delete-orphan": org.lamsfoundation.lams.tool.forum.persistence.Message.attachments         at org.hibernate.engine.Collections.processDereferencedCollection(Collections.java:70)         at org.hibernate.engine.Collections.processUnreachableCollection(Collections.java:38)         at org.hibernate.event.def.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:211)         at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:71)         at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)         at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:716)         at org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter.closeSession(CustomizedOpenSessionInViewFilter.java:77)         at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:184)         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)         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.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)         at org.lamsfoundation.lams.integration.security.SingleSignOn.invoke(SingleSignOn.java:121)         at org.lamsfoundation.lams.integration.security.LoginRequestValve.invoke(LoginRequestValve.java:67)         at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:481)         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)         at java.lang.Thread.run(Thread.java:619)         ... 71 more
        Hide
        dronych Andrey Balan added a comment -
        fixed

        so the problem occurred due to old forums containing NULL sequence_id
        Show
        dronych Andrey Balan added a comment - fixed so the problem occurred due to old forums containing NULL sequence_id
        Hide
        ernieg Ernie Ghiglione added a comment -
        > label.authoring.basic.do.you.want.to.delete

        Label added to i18n now
        Show
        ernieg Ernie Ghiglione added a comment - > label.authoring.basic.do.you.want.to.delete Label added to i18n now
        Hide
        ernieg Ernie Ghiglione added a comment -
        Tested and closed for both 2.3.5 and 2.4
        Show
        ernieg Ernie Ghiglione added a comment - Tested and closed for both 2.3.5 and 2.4
        Hide
        ernieg Ernie Ghiglione added a comment -
        reclosing shorlty
        Show
        ernieg Ernie Ghiglione added a comment - reclosing shorlty

          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