Name: PK28514 ============= Summary: Dynamically adding portlets to dynamic pages using the DynamicUI management API does not work Problem Description: When trying to dynamically add a portlet to a dynamic page using the DynamicUI management API the portlet does not directly appear. A blank page appears and then, depending on the browser being used, the portlet appears after clicking the back button (IE) or after invoking the action that contains the code for the launch again (Firefox). In the logs the following error can be found: [7/18/06 13:56:50:825 CEST] 0000003f DispatcherSer E com.ibm.wps.services.dispatcher.DispatcherServiceImpl handleRequest EJPFD0004E: The dispatcher call resulted in an error. java.lang.NullPointerException at com.ibm.wps.model.content.impl.ContentModelImpl.getParent(ContentModelImpl.java:1607) at com.ibm.wps.model.te.DynamicAssemblyTreeModelWrapper.getParent(DynamicAssemblyTreeModelWrapper.java:454) at com.ibm.wps.model.metadata.impl.AggregatedMetaDataModelImpl.aggregateMetaData(AggregatedMetaDataModelImpl.java:92) at com.ibm.wps.model.metadata.impl.AggregatedMetaDataModelImpl.getMetaData(AggregatedMetaDataModelImpl.java:60) at com.ibm.wps.model.wrappers.ContentMetaDataModelWrapper.getMetaData(ContentMetaDataModelWrapper.java:60) at com.ibm.wps.theme.policy.ThemePolicyManager.getThemePolicyPath(ThemePolicyManager.java:280) at com.ibm.wps.theme.policy.tags.InitThemePolicyTag.doStartTag(InitThemePolicyTag.java:130) at com.ibm._jsp._Default._jspService(_Default.java:392) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1239) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:113) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:670) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:117) at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:178) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:613) at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:87) at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:52) at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:45) at com.ibm.wps.engine.templates.themes.Default.render(Default.java:142) at com.ibm.wps.engine.templates.ThemeTemplate.render(ThemeTemplate.java:67) at com.ibm.wps.engine.phases.WPRenderPhase.processRendering(WPRenderPhase.java:322) at com.ibm.wps.engine.phases.WPRenderPhase.execute(WPRenderPhase.java:137) at com.ibm.wps.state.phases.AbstractRenderPhase.next(AbstractRenderPhase.java:106) at com.ibm.wps.engine.phases.WPAbstractRenderPhase.next(WPAbstractRenderPhase.java:93) at com.ibm.wps.engine.Servlet.callPortal(Servlet.java:791) at com.ibm.wps.engine.Servlet.doGet(Servlet.java:629) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1239) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136) at com.ibm.wps.state.filter.StateCleanup.doFilter(StateCleanup.java:86) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121) at com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:257) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:670) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2965) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:221) at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1931) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:84) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952) at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1470) NOTE: After installation, please execute the following steps in order to redeploy the war file: cd to portal server root directory cd config WPSConfig action-deploy-transformation-dynamicui Problem Solution: Changed the code to handle the NullPointerException Failing Module(s): Engine: Page Assembly Affected Users: All users Version Information: Portal Version(s): 6.0.0.0 Pre-Requisite(s): --- Co-Requisite(s): --- Platform Specific: This fix applies to all platforms. Installation: NOTE: YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN ORDER TO INSTALL A FIX. The Portal Update Installer can be downloaded from the following link: http://www.ibm.com/software/genservers/portal/support 1. Create temporary "fix" directory to store the jar file. 2. Copy jar file to this directory. 3. Shutdown WebSphere Portal. 4. Follow the fix installation instructions that are packaged with the Portal Update Installer on how to install the fix. 5. Restart WebSphere Portal. 6. The temporary directory may be removed. Un-Installation: NOTE: FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED FIX. 1. Shutdown WebSphere Portal. 2. Follow the instructions that are packaged with the Portal Update Installer on how to uninstall the fix. 3. Restart WebSphere Portal.