[ 
https://issues.apache.org/jira/browse/AXIS2-2703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12498956
 ] 

Glen Daniels commented on AXIS2-2703:
-------------------------------------

Hi Deepal:

Clearly someone thought it would be OK to expect that their global Handlers 
would execute even if they were deployed after Dispatch.  I don't think this is 
an unreasonable assumption, and it seems to me the replacing of the 
ExecutionChain is kind of a bad idea because a) it's confusing (you can deploy 
stuff that just fails, why is flowComplete() so complicated when it could be 
just looping backwards to zero from currentHandlerIndex?, etc), and b) it's too 
inflexible (why can't I have a global handler that wants to run in a later 
phase?)

We did talk about the sort of design where we'd have one ExecutionChain that 
would progressively get built, both in person in Colombo and I believe on the 
list at various times, and IIRC agreed on it.  I'm not sure where the notion of 
a "Global" vs. "Operation" phase (in that Global ones go away) came about, but 
IMHO it misses the point of the original design, and I'd very much like us to 
get back to that if we can.  Otherwise I'm afraid we might have more problems 
like this down the road, not to mention having a more difficult time dealing 
with per-message policies later.





> Global phases after Dispatch are ignored
> ----------------------------------------
>
>                 Key: AXIS2-2703
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2703
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>            Reporter: Glen Daniels
>         Assigned To: Glen Daniels
>             Fix For: 1.3
>
>
> As noted by Afkham in http://www.wso2.org/jira/browse/WSAS-244, we aren't 
> currently respecting any phases deployed in axis2.xml after Dispatch.  This 
> is because in the last line of DispatchPhase.checkPostConditions(), we 
> *overwrite* the ExecutionChain in the MessageContext with the one we get from 
> the operation.  We should be *merging* the operation specific stuff with the 
> original version.  In other words, if we had the following EC:
> Phase1[ h1, h2 ], Dispatch[h3], Phase2[], Phase3[h4]
> ...and an operation which put handler "h5" into Phase2, we should end up with:
> Phase1[ h1, h2 ], Dispatch[h3], Phase2[h5], Phase3[h4]
> after dispatching, with the execution point at Phase2.  In particular h4 
> should still be invoked.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to