[
https://issues.apache.org/jira/browse/PORTLETBRIDGE-31?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581737#action_12581737
]
Scott O'Bryan commented on PORTLETBRIDGE-31:
--------------------------------------------
Sorry to comment again on this. This patch won't quite work.. I think we only
want the null value to effect whether or not we check for the annotation. The
other logic still needs to hold true. For example, lets say we have a key of
"mybean" configured in the face-config.xml to be excluded and that value is set
to null on the map. With your logic the isExcludedFromBridgeRequestScope would
return false, when in actuality it should return true. I think the net effect
is trivial, but it may effect some usecases.
Do you agree?
Scott
> BridgeImpl doesn't check for null Map values
> --------------------------------------------
>
> Key: PORTLETBRIDGE-31
> URL: https://issues.apache.org/jira/browse/PORTLETBRIDGE-31
> Project: MyFaces Portlet Bridge
> Issue Type: Bug
> Components: Impl
> Affects Versions: 1.0.0-alpha-2
> Environment: Windows XP, Tomcat 6, eXo portal, JSF RI
> Reporter: Kito D. Mann
> Attachments: BridgeImpl.patch
>
>
> When copying request values, the Bridge doesn't check for null. Specifically,
> the isExcludedFromBridgeRequestScope method doesn't check for null. This
> causes a problem with eXo portal (I suppose it puts a null value in that
> map). Here's the stack trace:
> java.lang.NullPointerException
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.isExcludedFromBridgeRequestScope(BridgeImpl.java:893)
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.copyRequestMap(BridgeImpl.java:877)
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.saveBridgeRequestScopeData(BridgeImpl.java:837)
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:267)
> at
> javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:331)
> at
> javax.portlet.faces.GenericFacesPortlet.processAction(GenericFacesPortlet.java:189)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletMethodCommand.processAction(PortletMethodCommand.java:67)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:38)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.processAction(BaseCommandUnit.java:61)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:38)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletCacheCommand.processAction(PortletCacheCommand.java:220)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:38)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletFilterCommand.processAction(PortletFilterCommand.java:71)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:38)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletSecurityCommand.processAction(PortletSecurityCommand.java:52)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:38)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.processAction(BaseCommandUnit.java:61)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:45)
> at
> org.exoplatform.container.component.ExecutionContext.execute(ExecutionContext.java:32)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletCommandChain.doProcessAction(PortletCommandChain.java:52)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.PortletApplicationHandler.process(PortletApplicationHandler.java:241)
> at
> org.exoplatform.services.portletcontainer.impl.servlet.ServletWrapper.service(ServletWrapper.java:100)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.PortletContainerDispatcher.dispatch(PortletContainerDispatcher.java:537)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.PortletContainerDispatcher.process(PortletContainerDispatcher.java:472)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.PortletContainerDispatcher.processAction(PortletContainerDispatcher.java:367)
> at
> org.exoplatform.services.portletcontainer.impl.PortletContainerServiceImpl.processAction(PortletContainerServiceImpl.java:205)
> at
> org.exoplatform.portal.webui.application.UIPortletActionListener$ProcessActionActionListener.execute(UIPortletActionListener.java:109)
> at org.exoplatform.webui.event.Event.broadcast(Event.java:52)
> at
> org.exoplatform.portal.webui.application.UIPortletLifecycle.processAction(UIPortletLifecycle.java:116)
> at
> org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:90)
> at
> org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processAction(UIPortalApplicationLifecycle.java:56)
> at
> org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:90)
> at
> org.exoplatform.webui.core.UIApplication.processAction(UIApplication.java:80)
> at
> org.exoplatform.webui.application.WebuiApplication.processAction(WebuiApplication.java:105)
> at
> org.exoplatform.portal.application.PortalRequestHandler.execute(PortalRequestHandler.java:87)
> at
> org.exoplatform.web.WebAppController.service(WebAppController.java:126)
> at
> org.exoplatform.portal.application.PortalController.service(PortalController.java:92)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.exoplatform.frameworks.jcr.web.SimpleSessionFactoryInitializedFilter.doFilter(SimpleSessionFactoryInitializedFilter.java:144)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.virtua.knowesis.portal.UrlFilter.doFilter(UrlFilter.java:204)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> com.virtua.knowesis.web.common.SessionInViewFilter.doFilter(SessionInViewFilter.java:32)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
> at java.lang.Thread.run(Thread.java:595)
> The fix is just to check for null in this method. The patch is attached.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.