[
https://issues.apache.org/jira/browse/CXF-5008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vadim Kirilchuk updated CXF-5008:
---------------------------------
Attachment: PhaseInterceptorChainTest.patch
tests
> PhaseInterceptorChain insertInterceptor gives wrong ordering
> ------------------------------------------------------------
>
> Key: CXF-5008
> URL: https://issues.apache.org/jira/browse/CXF-5008
> Project: CXF
> Issue Type: Bug
> Reporter: Vadim Kirilchuk
> Priority: Minor
> Attachments: PhaseInterceptorChainTest.patch
>
>
> Hi everyone,
> I am playing along with PhaseInterceptorChain#insertInterceptor and confused
> by ordering. As i understand this code have to order interceptors according
> to their before/after dependencies.
> I have 5 interceptors with names "0","1","2","3","4"
> "0" must be before "1" and "4"
> "1" must be before "2" but after "0"
> "2" must be before "4" but after "1"
> "3" must be after "1" and "2"
> "4" has no befors or afters
> as you can see the rule is very simple
> n-th element befors can be any from n + 1
> n-th element afters can be any from 0, n
> Now i try to add this interceptors in shuffled order: 4, 2, 0, 1, 3
> Here is what i get in the chain step by step
> 4
> 2, 4
> 2, 0, 4
> 1, 2, 0, 4
> 1, 2, 0, 4, 3
> as you can see constraint for "0" is broken, it must be at the head!
> Also i don't see any checks for case when you met firstBefore and then met
> lastAfter which means that your interceptors have conflicting dependencies.
> Is it OK?
> Example: interceptor C must be before D but after B, and interceptor B must
> be after D
> when you start adding them as D B C you first add D to chain
> D
> then B, and see that it have to be after D
> D B
> then you try to add C and see, that it must be before D but after B
> c D B c
> and no exceptions or something is thrown.
> I am attaching tests as well.
> Please check them and tell me if i just doing something wrong.
> Thanks in advance.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira