Hi *Randy*, I am testing DatabasePageManager, my environment: WinXP SP2, JDK 1.4.2_10, Jetspeed-branch-2.0.1 svn head, Tomcat 5.5.12.
When I enabled DatabasePageManager, and then I visit http://localhost:8080/jetspeed/, I got an NPE, pls read the detail exception below. I do some debug and found that the problem is caused by a constants variable named EMPTY_NODE_SET defined in org.apache.jetspeed.page.document.impl.NodeSetImpl. This constants is created by the default constructor which did not initialize the member variable - nodes. Then when invoke NodeSetImpl.iterator(), it will return a null. java.lang.NullPointerException at org.apache.jetspeed.om.folder.proxy.FolderProxy.aggregateChildren( FolderProxy.java:752) at org.apache.jetspeed.om.folder.proxy.FolderProxy.getAll(FolderProxy.java:309) at org.apache.jetspeed.om.folder.proxy.FolderProxy.invoke(FolderProxy.java:198) at $Proxy12.getAll(Unknown Source) at org.apache.jetspeed.portalsite.view.SiteView.isProxyViewable(SiteView.java:1092) at org.apache.jetspeed.portalsite.view.SiteView.getNodeProxies(SiteView.java:1009) at org.apache.jetspeed.portalsite.view.SiteView.getNodeProxies(SiteView.java:888) at org.apache.jetspeed.portalsite.impl.MenuImpl.constructMenuElements( MenuImpl.java:580) at org.apache.jetspeed.portalsite.impl.MenuImpl.( MenuImpl.java:216) at org.apache.jetspeed.portalsite.impl.MenuImpl.( MenuImpl.java:474) at org.apache.jetspeed.portalsite.impl.PortalSiteRequestContextImpl.getMenu( PortalSiteRequestContextImpl.java:457) at org.apache.jetspeed.portalsite.impl.PortalSiteRequestContextImpl.getMenu( PortalSiteRequestContextImpl.java:405) 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:324) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke( UberspectImpl.java:267) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197) at org.apache.velocity.runtime.parser.node.ASTReference.execute( ASTReference.java:175) at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327) at org.apache.velocity.runtime.parser.node.ASTExpression.value( ASTExpression.java:51) at org.apache.velocity.runtime.parser.node.ASTSetDirective.render( ASTSetDirective.java:95) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) at org.apache.velocity.runtime.directive.Parse.render(Parse.java:181) at org.apache.velocity.runtime.parser.node.ASTDirective.render( ASTDirective.java:114) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) at org.apache.velocity.Template.merge(Template.java:256) at org.apache.portals.bridges.velocity.BridgesVelocityViewServlet.mergeTemplate (BridgesVelocityViewServlet.java:118) at org.apache.velocity.tools.view.servlet.VelocityViewServlet.doRequest(Unknown Source) at org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 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.doInclude( ApplicationDispatcher.java:574) at org.apache.catalina.core.ApplicationDispatcher.include( ApplicationDispatcher.java:499) at org.apache.jetspeed.dispatcher.JetspeedRequestDispatcher.include( JetspeedRequestDispatcher.java:72) at org.apache.portals.bridges.common.GenericServletPortlet.doView( GenericServletPortlet.java:363) at org.apache.jetspeed.portlets.layout.LayoutPortlet.doView(LayoutPortlet.java:207) at org.apache.jetspeed.portlets.layout.MultiColumnPortlet.doView( MultiColumnPortlet.java:126) at javax.portlet.GenericPortlet.doDispatch( GenericPortlet.java:247) at javax.portlet.GenericPortlet.render( GenericPortlet.java:175) at org.apache.jetspeed.factory.JetspeedPortletInstance.render( JetspeedPortletInstance.java:102) at org.apache.jetspeed.container.invoker.LocalPortletInvoker.invoke( LocalPortletInvoker.java:196) at org.apache.jetspeed.container.invoker.LocalPortletInvoker.render( LocalPortletInvoker.java:116) at org.apache.pluto.PortletContainerImpl.renderPortlet( PortletContainerImpl.java:119) at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet( JetspeedPortletContainerWrapper.java:120) at org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute( RenderingJobImpl.java:120) at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow( PortletRendererImpl.java:110) at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender( PageAggregatorImpl.java:199) at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build( PageAggregatorImpl.java:106) at org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:48) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke( ActionValveImpl.java:132) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:100) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke( ProfilerValveImpl.java:179) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke( LoginValidationValveImpl.java:143) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke( PasswordCredentialValveImpl.java:148) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke( LocalizationValveImpl.java:168) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run( AbstractSecurityValve.java:117) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:437) at org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke( AbstractSecurityValve.java:111) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke( PortalURLValveImpl.java:55) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke( CapabilityValveImpl.java:128) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext( JetspeedPipeline.java:203) at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185) at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:231) at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:226) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 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 org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:693) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:660) at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:45) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 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.StandardWrapperValve.invoke( StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:432) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 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:868) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:663) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( ThreadPool.java:684) at java.lang.Thread.run(Thread.java:534) regards, - Jian Liao
