[
https://issues.apache.org/jira/browse/TRINIDAD-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12627839#action_12627839
]
Scott O'Bryan commented on TRINIDAD-1203:
-----------------------------------------
I think we need to be very careful about applying this patch. It seems the
patch is taking a fairly interesting approach. Some years ago, Adam (the
original author of this logic) and I discussed changing this re-execution of
the filter chain in order to support Portals. The "forward" approach was not
discussed because portal's didn't support them. As such, we discussed
redirects. His issue with the redirect is that redirects are GET requests and
the amount of posted in data may exceed an appropriate size. Indeed the
forward eliminates this issue, but it may well cause others. For example:
1. Filters are not executed on a forward or include by default. As such,
where the doFilter would re-execute any filters in the chain, the "forward"
approach would not. Setting them up to execute on forwards could well have
adverse effects in that filters may be applied multiple times. Let's not
forget that both faces and the bridge do a forward at some point during the
lifecycle. Configuring the filter to work off a forward might re-apply these
filters.
2. There may be some containers whose response is committed by the end of the
initial doFilter. If this is the case, the forward would throw an exception.
3. This solution may well impact our ability to handle Trinidad Dialogs from a
portlet environment. Currently we do not support trinidad dialogs in portlets,
but there is an open JIRA ticket and I was hoping to be able to do this in
Portlet 2.0. Although Portlet 2.0 supports forward, I'm not sure if this
scenario would necessarily be supported.
Besides some of the concerns, this solution should be moved to a configurator
and handled there. It remained in the Trinidad filters because it needed to
re-run the filter chain, something that configurators could not do.
Configurators CAN forward, however, and it would allow us to have custom logic
for both portlets AND servlets. I guess in short, I would be very reluctant to
put a change like this in until we've had a chance to figure out all of its
implications, especially with other pieces of the ADF stack like ADFm,
ADF-Bindings, and ADFc.
Some alternatives to this would be to handle this re-execution of the lifecycle
at the faces level instead of at the filter level. Adam and I toyed with the
idea of possibly adding a Trinidad lifecycle which would simulate this
re-execution. Another alternative is to revisit the dialog framework
altogether and see if there is not a way to combine processing of the dialog
view root with the new view root.
One question I do need to ask is this. What exception does WLS throw when the
doFilter is re-executed? J2EE says that an IOException or a ServletException
are the only allowed exceptions which may be thrown. Certainly a chain to be
executed twice does not seem like either one of these exceptions and it seems
to me that the javadoc is pretty clear as to what is supposed to happen.
> DATE SELECTION IN INPUTDATE ON BLACKBERRY THROWS VIEWEXPIREDEXCEPTION
> ---------------------------------------------------------------------
>
> Key: TRINIDAD-1203
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1203
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Components
> Affects Versions: 1.2.9-core
> Environment: WebLogic Server only. This is a specific to browsers
> that do not support multiple windows (pop up).
> Reporter: Tadashi Enomori
> Priority: Minor
> Attachments: TRINIDAD-1203.patch, TRINIDAD-1203_1.0.patch
>
>
> This problem is caused by the variation of filter chain implementation in
> servers. Trinidad filter implementation invokes chain.doFilter() for a same
> request, but WLS does not handle the case.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.