Issue Details (XML | Word | Printable)

Key: CONF-4222
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Critical Critical
Assignee: Unassigned
Reporter: Mingyi Liu
Votes: 0
Watchers: 0
Operations

Add/Edit UI Mockup to this issue
If you were logged in you would be able to see more operations.
Confluence

Empty-titled page causes NullPointerException for space view

Created: 05/Oct/05 10:27 AM   Updated: 07/Oct/05 01:02 AM
Component/s: Pages
Affects Version/s: 1.4.4
Fix Version/s: None

Time Tracking:
Not Specified

Environment:
Application Server: Apache Tomcat/4.1.30
Servlet Version: 2.3
Database Dialect: net.sf.hibernate.dialect.Oracle9Dialect
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
Operating System: Linux 2.4.18-18.7.xbigmem
OS Architecture: i386

Participants: Mingyi Liu and Tom Davies [Atlassian]
Since last comment: 3 years, 38 weeks, 5 days ago
Resolution Date: 07/Oct/05 01:02 AM
Labels:


 Description  « Hide
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



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Mingyi Liu added a comment - 05/Oct/05 12:38 PM
Update: After a while, I just found I was able to view the tree view for the space now! I wonder if it's index-related then. Anyway it seems that at least a temporary solution would be to manually delete the empty-titled page from the space and maybe reindex?

Tom Davies [Atlassian] added a comment - 05/Oct/05 10:05 PM
The alias macro is a third party macro, which we don't support.

I recommend that you manually delete the empty titled page. Reindexing is probably not needed, but wouldn't hurt.


Mingyi Liu added a comment - 06/Oct/05 11:43 AM
Thanks for your reply. I think David Peterson is working on it.

Tom Davies [Atlassian] added a comment - 07/Oct/05 01:02 AM
Caused by third party plugin