« Return to Thread: [jira] Created: (PORTLETBRIDGE-31) BridgeImpl doesn't check for null Map values

[jira] Commented: (PORTLETBRIDGE-31) BridgeImpl doesn't check for null Map values

by My Faces - Dev mailing list :: Rate this Message:

Reply to Author | View in Thread


    [ 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.

 « Return to Thread: [jira] Created: (PORTLETBRIDGE-31) BridgeImpl doesn't check for null Map values

LightInTheBox - Buy quality products at wholesale price!