[
https://issues.apache.org/jira/browse/TRINIDAD-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Röthenbacher reopened TRINIDAD-1377:
------------------------------------------
What do you mean by Action 'type' requests? Is a javax.portlet.RenderRequest an
Action 'type' request? This is true if run in the Pluto RI as it uses an
HttpServletRequest (which implements ServletRequest) as request object for both
javax.portlet.ActionRequest and javax.portlet.RenderRequest. I guess you can't
assume that a RenderRequest does not also implement ServletRequest.
Feel free to close this bug if you still think this is not a bug.
> ActionRequest not properly detected.
> ------------------------------------
>
> Key: TRINIDAD-1377
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1377
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Portlet
> Affects Versions: 1.2.11-core
> Reporter: Felix Röthenbacher
>
> The method ExternalContextUtils.isAction(final ExternalContext
> externalContext) does not reliably detect an action request.
> If the object returned by ExternalContext.getRequest() implements the
> ServletRequest interface the method above returns
> true. This can also apply for a RenderRequest which is not an ActionRequest.
> The following fixes this:
> /**
> * Returns <code>true</code> if this externalContext represents an
> "action". An action request
> * is any ServletRequest or a portlet ActionRequest. It is assumed that the
> ExternalContext
> *
> * @return a boolean of <code>true</code> if this is a Portlet
> ActionRequest or an non-portlet
> * request.
> */
> public static boolean isAction(final ExternalContext externalContext)
> {
> final Object request = externalContext.getRequest();
> if (_PORTLET_ACTION_REQUEST_CLASS == null)
> {
> _LOG
> .fine("Portlet API's are not on the classpath so isAction will only
> check for servlet request.");
> return request instanceof ServletRequest;
> }
> return (request instanceof ServletRequest &&
> !_PORTLET_RENDER_REQUEST_CLASS.isInstance(request) ||
> _PORTLET_ACTION_REQUEST_CLASS.isInstance(request)) ;
> }
> _PORTLET_RENDER_REQUEST_CLASS has to be properly initialized. Not sure why
> this method checks for ServletRequest.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.