Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.5
    • Fix Version/s: 2.4, 2.3.6
    • Component/s: Tool QA
    • Labels:
      None

      Description

      Andrey, when impoting a sequence with 2QAs created with 2.3.5 into the latest Q&A (after LDEV-2653) I get this:

      org.springframework.transaction.UnexpectedRollbackException JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: Already marked for rollback TransactionImpl:XidImpl[FormatId=257, GlobalId=laptop.local/15754, BranchQual=, localId=15754]

      \2011-03-21 12:34:32,122 WARN [ExportToolContentService] Importing a design from a later version of LAMS. There may be parts of the design that will fail to import. Design name '2QAs'. Version in import file 2.3.5.201012010128
      2011-03-21 12:34:32,166 DEBUG [ExportToolContentService] Learning design xml deserialize to LearingDesignDTO success.
      2011-03-21 12:34:32,169 DEBUG [ExportToolContentService] Tool begin to import content : Q & A by contentID :3
      2011-03-21 12:34:32,170 DEBUG [ExportToolContentService] Version filter class will filter from version 2.0101022E7 to 2.0110216E7
      2011-03-21 12:34:32,184 DEBUG [FileUtil] Failed import
      com.thoughtworks.xstream.converters.ConversionException: org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      ---- Debugging information ----
      required-type : java.util.TreeSet
      cause-message : org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      class : org.lamsfoundation.lams.tool.qa.QaContent
      message : org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      line number : 20
      path : /org.lamsfoundation.lams.tool.qa.QaContent/qaQueContents/org.lamsfoundation.lams.tool.qa.QaQueContent
      cause-exception : com.thoughtworks.xstream.alias.CannotResolveClassException
      -------------------------------
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
              at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:37)
              at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:105)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:39)
              at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:37)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:96)
              at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:12)
              at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:286)
              at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:274)
              at com.thoughtworks.xstream.XStream.fromXML(XStream.java:242)
              at org.lamsfoundation.lams.util.FileUtil.getObjectFromXML(FileUtil.java:780)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importToolContent(ExportToolContentService.java:1576)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$FastClassByCGLIB$$d05ed216.invoke(<generated>)
              at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
              at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:685)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$EnhancerByCGLIB$$5909b733.importToolContent(<generated>)
              at org.lamsfoundation.lams.tool.qa.service.QaServicePOJO.importToolContent(QaServicePOJO.java:768)
              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:592)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
              at $Proxy69.importToolContent(Unknown Source)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importLearningDesignV2(ExportToolContentService.java:1433)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importLearningDesign(ExportToolContentService.java:1314)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$FastClassByCGLIB$$d05ed216.invoke(<generated>)
              at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
              at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:685)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$EnhancerByCGLIB$$5909b733.importLearningDesign(<generated>)
              at org.lamsfoundation.lams.authoring.web.ImportToolContentAction.importLD(ImportToolContentAction.java:196)
              at org.lamsfoundation.lams.authoring.web.ImportToolContentAction.execute(ImportToolContentAction.java:132)
              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.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
              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)
              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.coyote.http11.Http11Processor.process(Http11Processor.java:856)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
              at java.lang.Thread.run(Thread.java:655)
      Caused by: com.thoughtworks.xstream.alias.CannotResolveClassException: org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
              at com.thoughtworks.xstream.core.DefaultClassMapper.lookupType(DefaultClassMapper.java:223)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:54)
              at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:52)
              at com.thoughtworks.xstream.converters.collections.TreeSetConverter.unmarshal(TreeSetConverter.java:57)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:39)
              ... 84 more
      2011-03-21 12:34:32,198 DEBUG [FileUtil] Retrying import after removing field org.lamsfoundation.lams.tool.qa.QaQueContent
      2011-03-21 12:34:32,200 DEBUG [FileUtil] Failed import
      com.thoughtworks.xstream.converters.ConversionException: org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      ---- Debugging information ----
      required-type : java.util.TreeSet
      cause-message : org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      class : org.lamsfoundation.lams.tool.qa.QaContent
      message : org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
      line number : 20
      path : /org.lamsfoundation.lams.tool.qa.QaContent/qaQueContents/org.lamsfoundation.lams.tool.qa.QaQueContent
      cause-exception : com.thoughtworks.xstream.alias.CannotResolveClassException
      -------------------------------
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
              at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:37)
              at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.unmarshal(ReflectionConverter.java:105)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:39)
              at com.thoughtworks.xstream.core.ReferenceByXPathUnmarshaller.convertAnother(ReferenceByXPathUnmarshaller.java:37)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:96)
              at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:12)
              at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:286)
              at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:274)
              at com.thoughtworks.xstream.XStream.fromXML(XStream.java:242)
              at org.lamsfoundation.lams.util.FileUtil.getObjectFromXML(FileUtil.java:780)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importToolContent(ExportToolContentService.java:1576)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$FastClassByCGLIB$$d05ed216.invoke(<generated>)
              at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
              at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:685)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$EnhancerByCGLIB$$5909b733.importToolContent(<generated>)
              at org.lamsfoundation.lams.tool.qa.service.QaServicePOJO.importToolContent(QaServicePOJO.java:768)
              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:592)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
              at $Proxy69.importToolContent(Unknown Source)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importLearningDesignV2(ExportToolContentService.java:1433)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService.importLearningDesign(ExportToolContentService.java:1314)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$FastClassByCGLIB$$d05ed216.invoke(<generated>)
              at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
              at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:685)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
              at org.lamsfoundation.lams.learningdesign.service.ExportToolContentService$$EnhancerByCGLIB$$5909b733.importLearningDesign(<generated>)
              at org.lamsfoundation.lams.authoring.web.ImportToolContentAction.importLD(ImportToolContentAction.java:196)
              at org.lamsfoundation.lams.authoring.web.ImportToolContentAction.execute(ImportToolContentAction.java:132)
              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.doPost(ActionServlet.java:432)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
              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)
              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.coyote.http11.Http11Processor.process(Http11Processor.java:856)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
              at java.lang.Thread.run(Thread.java:655)
      Caused by: com.thoughtworks.xstream.alias.CannotResolveClassException: org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent
              at com.thoughtworks.xstream.core.DefaultClassMapper.lookupType(DefaultClassMapper.java:223)
              at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:54)
              at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:52)
              at com.thoughtworks.xstream.converters.collections.TreeSetConverter.unmarshal(TreeSetConverter.java:57)
              at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:39)
              ... 84 more
      2011-03-21 12:34:32,243 ERROR [ExportToolContentService] Unable to import tool content for tool Question and Answer. Caused by org.lamsfoundation.lams.tool.exception.ToolException: org.lamsfoundation.lams.learningdesign.service.ImportToolContentException: com.thoughtworks.xstream.converters.ConversionException: org.lamsfoundation.lams.tool.qa.QaQueContent : org.lamsfoundation.lams.tool.qa.QaQueContent

        Activity

        Hide
        ernieg Ernie Ghiglione added a comment -
        2QAs.zip file was created in translations.lamscommunity.org (running 2.3.5).
        Show
        ernieg Ernie Ghiglione added a comment - 2QAs.zip file was created in translations.lamscommunity.org (running 2.3.5).
        Hide
        dronych Andrey Balan added a comment -
        I was thinking about adding a new method to ToolContentVersionFilter class and thus solving the issue.

        but then it turned out there are such cases where renaming classes can get really tricky:
        e.g. <org.lamsfoundation.lams.tool.qa.QaQuestion reference="../../../../qaQueContents/org.lamsfoundation.lams.tool.qa.QaQueContent" />.
        Besides we should bear in mind that it's impossible to rename class fields
        (and so QaContent.qaQueContents field can't be renamed into QaContent.qaQuestions one).

        so i just rolled back all changes in class names.
        Show
        dronych Andrey Balan added a comment - I was thinking about adding a new method to ToolContentVersionFilter class and thus solving the issue. but then it turned out there are such cases where renaming classes can get really tricky: e.g. <org.lamsfoundation.lams.tool.qa.QaQuestion reference="../../../../qaQueContents/org.lamsfoundation.lams.tool.qa.QaQueContent" />. Besides we should bear in mind that it's impossible to rename class fields (and so QaContent.qaQueContents field can't be renamed into QaContent.qaQuestions one). so i just rolled back all changes in class names.
        Hide
        dronych Andrey Balan added a comment -
        Well, when i'm thinking ab this now:
        we could actually handle renaming class fields by adding one more additional method to ToolContentVersionFilter.
        (so 2 methods to add in total: renameClass() and renameField())

        but so far we had only one request for such a feature, i.e. hear in Q&A.
        we can implement this idea later on if there will be such a need
        Show
        dronych Andrey Balan added a comment - Well, when i'm thinking ab this now: we could actually handle renaming class fields by adding one more additional method to ToolContentVersionFilter. (so 2 methods to add in total: renameClass() and renameField()) but so far we had only one request for such a feature, i.e. hear in Q&A. we can implement this idea later on if there will be such a need
        Hide
        ernieg Ernie Ghiglione added a comment -
        Tested and closed for both 2.4 and 2.3_release
        Show
        ernieg Ernie Ghiglione added a comment - Tested and closed for both 2.4 and 2.3_release

          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