axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Daniels (JIRA)" <>
Subject [jira] Commented: (AXIS2-2703) Global phases after Dispatch are ignored
Date Fri, 25 May 2007 06:47:16 GMT


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:
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>            Reporter: Glen Daniels
>         Assigned To: Glen Daniels
>             Fix For: 1.3
> As noted by Afkham in, 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:
For additional commands, e-mail:

View raw message