Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-7739

Some content migrated from 2.0 to 2.3 fails to render (due to:- system error: java.lang.String java.lang.ClassClastException: java.langString)

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 2.4.1, 2.5.4, 2.6.0
    • 2.3, 2.3.1, 2.3.2, 2.3.3, 2.4, 2.5, 2.5.1, 2.5.2, 2.5.3
    • None
    • x86_64, Linux (Ubuntu 6.0.6), jboss 4.0.5GA, SUN java 1.5.0_10, SQLServer 2000

      Most of the content appears, but we have just started to find some which won't render, the stack traces in the logs are 10s of pages long, but seem to repeat:

      007-01-24 12:40:27,597 INFO [STDOUT] 12:40:27,596 ERROR [V2Renderer] Unable to render content due to system error: java.lang.String
      java.lang.ClassCastException: java.lang.String
      at com.atlassian.confluence.renderer.DefaultShortcutLinksManager.getShortcutLinkConfig(DefaultShortcutLinksManager.java:65)
      at com.atlassian.confluence.links.linktypes.ShortcutLink.<init>(ShortcutLink.java:23)
      at com.atlassian.confluence.links.ConfluenceLinkResolver.makeShortcutLink(ConfluenceLinkResolver.java:188)
      at com.atlassian.confluence.links.ConfluenceLinkResolver.createLink(ConfluenceLinkResolver.java:128)
      at sun.reflect.GeneratedMethodAccessor284.invoke(Unknown Source)
      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:284)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
      at $Proxy98.createLink(Unknown Source)
      at com.atlassian.renderer.v2.components.LinkRendererComponent.appendLink(LinkRendererComponent.java:138)
      at com.atlassian.renderer.v2.components.LinkRendererComponent.render(LinkRendererComponent.java:96)
      at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:54)
      at com.atlassian.renderer.v2.V2SubRenderer.render(V2SubRenderer.java:44)
      at com.atlassian.renderer.v2.components.table.TableBlockRenderer.prerenderLinks(TableBlockRenderer.java:96)
      at com.atlassian.renderer.v2.components.table.TableBlockRenderer.renderNextBlock(TableBlockRenderer.java:51)
      at com.atlassian.renderer.v2.components.block.BlockRendererComponent.render(BlockRendererComponent.java:64)
      at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:54)
      at com.atlassian.renderer.v2.V2SubRenderer.render(V2SubRenderer.java:23)
      at com.atlassian.confluence.renderer.v2.macros.PageIncludeMacro.fetchPageContent(PageIncludeMacro.java:103)
      at com.atlassian.confluence.renderer.v2.macros.PageIncludeMacro.execute(PageIncludeMacro.java:77)
      at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:336)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:237)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:130)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.handlePotentialMacro(MacroRendererComponent.java:115)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:77)
      at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:54)
      at com.atlassian.renderer.v2.V2SubRenderer.render(V2SubRenderer.java:23)
      at com.atlassian.confluence.renderer.v2.macros.PageIncludeMacro.fetchPageContent(PageIncludeMacro.java:103)
      at com.atlassian.confluence.renderer.v2.macros.PageIncludeMacro.execute(PageIncludeMacro.java:77)
      at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:336)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:237)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:130)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.handlePotentialMacro(MacroRendererComponent.java:115)
      at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:77)
      at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:54)
      at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:57)
      at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)
      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:284)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
      at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
      at $Proxy99.convertWikiToXHtml(Unknown Source)
      at com.atlassian.confluence.renderer.DefaultWikiStyleRenderer.convertWikiToXHtml(DefaultWikiStyleRenderer.java:23)
      at com.atlassian.confluence.pages.actions.ViewPageAction.execute(ViewPageAction.java:116)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:55)
      at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:39)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.atlassian.confluence.core.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:16)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:47)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:114)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor.intercept(SpaceAwareInterceptor.java:67)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.core.actions.LastModifiedInterceptor.intercept(LastModifiedInterceptor.java:39)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.confluence.core.ConfluenceAutowireInterceptor.intercept(ConfluenceAutowireInterceptor.java:25)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymph
      2007-01-24 12:40:27,598 INFO [STDOUT] ony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:98)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:229)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199)
      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.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
      at com.atlassian.confluence.servlet.simpledisplay.SimpleDisplayServlet.doGet(SimpleDisplayServlet.java:51)
      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 com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:117)
      at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:137)
      at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:21)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.confluence.util.UserThreadLocalFilter.doFilter(UserThreadLocalFilter.java:44)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:159)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
      at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29)
      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:122)
      at com.atlassian.core.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:27)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:53)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
      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:96)
      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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      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:199)
      at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
      at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
      at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
      at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      at java.lang.Thread.run(Thread.java:595)
      2007-01-24 12:40:27,610 INFO [STDOUT] 12:40:27,609 ERROR [V2Renderer] Unable to render content due to system error: java.lang.String
      java.lang.ClassCastException: java.lang.String

      ETC...

            [CONFSERVER-7739] Some content migrated from 2.0 to 2.3 fails to render (due to:- system error: java.lang.String java.lang.ClassClastException: java.langString)

            is this directed at me? I haven't applied this to the 2.5.2 systems Ive upgrade recently, it doesn't appear to be a problem, but Ill have to verify.

            Andy Brook (Javahollic Software) added a comment - is this directed at me? I haven't applied this to the 2.5.2 systems Ive upgrade recently, it doesn't appear to be a problem, but Ill have to verify.

            Bob Swift added a comment -

            Is it recommended to patch installations (2.5.2) with this class?

            Bob Swift added a comment - Is it recommended to patch installations (2.5.2) with this class?

            Don Willis added a comment -

            This bug is fixed in a variety of versions. I should have checked fixes in more widely a long time ago, but I had thought we would fix CONF-7946 earlier.

            Don Willis added a comment - This bug is fixed in a variety of versions. I should have checked fixes in more widely a long time ago, but I had thought we would fix CONF-7946 earlier.

            I added the class and I can confirm that the 'super page' that was broken is now fixed. Thanks a lot!

            Andy Brook (Javahollic Software) added a comment - I added the class and I can confirm that the 'super page' that was broken is now fixed. Thanks a lot!

            Don Willis added a comment -

            I think this problem only occurs when upgrading by "Method Two", that is, importing a site export from the old instance. If anybody has a counter-example please tell us.

            It seems that when the upgrade task runs, Bandana is in a temporarily confused state, and fails to return the Shortcut Links. Then later (after a restart) when Bandana contains the Shortcut Links again, they have not been upgraded, so cause the ClassCastException.

            I have added a patch so that the type of the Objects retrieved from Bandana is checked and Strings are converted to ShortcutLinkConfigs as required.

            I have not "fixed" this bug, because I do not yet know why Bandana doesn't give out the ShortcutLinks when the upgrade task asks for them.

            Don Willis added a comment - I think this problem only occurs when upgrading by "Method Two", that is, importing a site export from the old instance. If anybody has a counter-example please tell us. It seems that when the upgrade task runs, Bandana is in a temporarily confused state, and fails to return the Shortcut Links. Then later (after a restart) when Bandana contains the Shortcut Links again, they have not been upgraded, so cause the ClassCastException. I have added a patch so that the type of the Objects retrieved from Bandana is checked and Strings are converted to ShortcutLinkConfigs as required. I have not "fixed" this bug, because I do not yet know why Bandana doesn't give out the ShortcutLinks when the upgrade task asks for them.

            Don Willis added a comment -

            Please put this file within your Confluence installation in under

            WEB-INF/classes/com/atlassian/confluence/renderer

            This will upgrade Shortcut Links as they are used.

            Don Willis added a comment - Please put this file within your Confluence installation in under WEB-INF/classes/com/atlassian/confluence/renderer This will upgrade Shortcut Links as they are used.

            Hi Andy,

            There is an upgrade task in Confluence 2.3 that should prevent this from happening. Would you mind please opening a support ticket at http://support.atlassian.com/ and attaching your confluence logs to this issue. Could you also please describe which method you used to upgrade confluence.

            Thanks,
            Chris

            Christopher Owen [Atlassian] added a comment - Hi Andy, There is an upgrade task in Confluence 2.3 that should prevent this from happening. Would you mind please opening a support ticket at http://support.atlassian.com/ and attaching your confluence logs to this issue. Could you also please describe which method you used to upgrade confluence. Thanks, Chris

            Kango_V added a comment -

            This page in question includes content from many other pages. Could this be the issue?

            Kango_V added a comment - This page in question includes content from many other pages. Could this be the issue?

              Unassigned Unassigned
              4065af06a75f Andy Brook (Javahollic Software)
              Affected customers:
              0 This affects my team
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: