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

Empty-titled page causes NullPointerException for space view

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • High
    • None
    • 1.4.4
    • None

    Description

      I was doing an upgrade (1.4.3 to 1.4.4) and deploy against Oracle testing. After it was done, everything seems to work until I tried to view one space, which crashed and gave this info:

      java.lang.NullPointerException
      	at java.lang.String.compareTo(String.java:998)
      	at com.atlassian.confluence.util.PageComparator.compare(PageComparator.java:22)
      	at java.util.Arrays.mergeSort(Arrays.java:1284)
      	at java.util.Arrays.mergeSort(Arrays.java:1296)
      	at java.util.Arrays.sort(Arrays.java:1223)
      	at java.util.Collections.sort(Collections.java:159)
      	at com.atlassian.confluence.pages.actions.DirectoryViewListPagesAction.execute(DirectoryViewListPagesAction.java:117)
      	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:33)
      	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:40)
      	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      	at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:87)
      	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.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.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
      	at com.atlassian.confluence.util.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:133)
      	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:853)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
      	at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:150)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:168)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
      	at bucket.custom.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:31)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:73)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
      	at com.atlassian.confluence.util.error.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:27)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:61)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:36)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
      	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
      	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
      	at java.lang.Thread.run(Thread.java:595)
      
      Referer URL: http://myserver:8080/dashboard.action
      
      Build Information:
      Uptime: 19 hours, 47 minutes, 47 seconds
      Version: 1.4.4
      Build Number: 221
      
      Server Information:
      Application Server: Apache Tomcat/4.1.30
      Servlet Version: 2.3
      Database Dialect: net.sf.hibernate.dialect.Oracle9Dialect
      
      Memory Information:
      Total Memory: 152 MB
      Free Memory: 12 MB
      Used Memory: 140 MB
      
      System Information:
      System Date: Wednesday, 05 Oct 2005
      System Time: 10:54:39
      System Favourite Colour: Lime
      Java Version: 1.5.0_04
      Java Vendor: Sun Microsystems Inc.
      JVM Version: 1.0
      JVM Vendor: Sun Microsystems Inc.
      JVM Implementation Version: 1.5.0_04-b05
      Java Runtime: Java(TM) 2 Runtime Environment, Standard Edition
      Java VM: Java HotSpot(TM) Server VM
      User Name: myusername
      User Timezone: America/Montreal
      Operating System: Linux 2.4.18-18.7.xbigmem
      OS Architecture: i386
      Request
      
      Information:
      URL: http://myserver:8080/pages/listpages-dirview.action
      - Scheme: http
      - Server: myserver
      - Port: 8080
      - URI: /500page.jsp
      - - Context Path:
      - - Servlet Path: /500page.jsp
      - - Path Info: null
      - - Query String: key=rep
      
      Attributes:
      - javax.servlet.error.exception : java.lang.NullPointerException
      - os_securityfilter_already_filtered : true
      - com.atlassian.johnson.filters.JohnsonFilter_already_filtered : true
      - __sitemesh__using_stream : false
      - javax.servlet.error.request_uri : /pages/listpages-dirview.action
      - javax.servlet.error.status_code : 500
      - __sitemesh__filterapplied : true
      - javax.servlet.error.servlet_name : action
      - webwork.valueStack : com.opensymphony.xwork.util.OgnlValueStack@19c314
      - javax.servlet.error.exception_type : class java.lang.NullPointerException
      - loginfilter.already.filtered : true
      - atlassian.core.seraph.original.url : /pages/listpages-dirview.action?key=rep
      - javax.servlet.jsp.jspException : java.lang.NullPointerException
      - sessioninview.FILTERED : true
      - com.atlassian.core.filters.gzip.GzipFilter_already_filtered : true
      
      Parameters:
      - key = rep
      
      Logging:
      0 log statements generated by this request.
      

      Then I remembered in 1.4.3, I was trying out the new

      {redirect}

      and

      {alias} macros, and the latter one was tricky and the deletion of it wasn't complete. It left behind an empty-titled page. It didn't cause problem for the 1.4.3 and the embedded DB, but apparently it wasn't working for 1.4.4.

      Then I tried to delete that page from Oracle DB. After its deletion, I was able to access the space view and all pages. But the space view's limited to 'recently updated' view and 'alphabetically listed' view. The tree view still gave an exception as below:
      Cause:
      java.lang.NullPointerException
      
      Stack Trace: [hide]
      
      java.lang.NullPointerException
      
      Referer URL: http://myserver:8080/pages/recentlyupdated.action?key=rep
      
      Build Information:
      Uptime: 20 hours, 7 minutes, 28 seconds
      Version: 1.4.4
      Build Number: 221
      
      Server Information:
      Application Server: Apache Tomcat/4.1.30
      Servlet Version: 2.3
      Database Dialect: net.sf.hibernate.dialect.Oracle9Dialect
      
      Memory Information:
      Total Memory: 215 MB
      Free Memory: 59 MB
      Used Memory: 156 MB
      
      System Information:
      System Date: Wednesday, 05 Oct 2005
      System Time: 11:14:20
      System Favourite Colour: Lime
      Java Version: 1.5.0_04
      Java Vendor: Sun Microsystems Inc.
      JVM Version: 1.0
      JVM Vendor: Sun Microsystems Inc.
      JVM Implementation Version: 1.5.0_04-b05
      Java Runtime: Java(TM) 2 Runtime Environment, Standard Edition
      Java VM: Java HotSpot(TM) Server VM
      User Name: myusername
      User Timezone: America/Montreal
      Operating System: Linux 2.4.18-18.7.xbigmem
      OS Architecture: i386
      Request
      
      Information:
      URL: http://myserver:8080/pages/listpages-dirview.action
      - Scheme: http
      - Server: myserver
      - Port: 8080
      - URI: /500page.jsp
      - - Context Path:
      - - Servlet Path: /500page.jsp
      - - Path Info: null
      - - Query String: key=rep
      
      Attributes:
      - javax.servlet.error.exception : java.lang.NullPointerException
      - os_securityfilter_already_filtered : true
      - __sitemesh__using_stream : false
      - com.atlassian.johnson.filters.JohnsonFilter_already_filtered : true
      - javax.servlet.error.request_uri : /pages/listpages-dirview.action
      - javax.servlet.error.status_code : 500
      - __sitemesh__filterapplied : true
      - javax.servlet.error.servlet_name : action
      - webwork.valueStack : com.opensymphony.xwork.util.OgnlValueStack@17e1c1f
      - javax.servlet.error.exception_type : class java.lang.NullPointerException
      - atlassian.core.seraph.original.url : /pages/listpages-dirview.action?key=rep
      - loginfilter.already.filtered : true
      - javax.servlet.jsp.jspException : java.lang.NullPointerException
      - sessioninview.FILTERED : true
      - com.atlassian.core.filters.gzip.GzipFilter_already_filtered : true
      
      Parameters:
      - key = rep
      
      Logging:
      0 log statements generated by this request.
      


      Please let me know if there's other things that need to be check/deleted for that empty page (I forgot to write down the page content id though). Also please check, if possible, why {alias}

      macro caused this problem after an alias was deleted. Thanks a lot!

      Mingyi

      Attachments

        Activity

          People

            Unassigned Unassigned
            2e7b7078d33d Mingyi Liu
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: