cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Restoring original bus in CXFNonSpringServlet?
Date Wed, 15 Apr 2015 17:35:24 GMT

Yea, that looks like a bug.  I’ll get it fixed.

Dan


> On Apr 13, 2015, at 4:54 PM, Ate Douma <ate@douma.nu> wrote:
> 
> We've noticed a somewhat odd and maybe erroneous difference in how CXFNonSpringServlet
'restores' the threadlocal CXF bus after being invoked.
> 
> Note: we are using our own dynamic orchestration of CXF, quite similar to the pattern
in CXFNonSpringServlet, so we'd like to know if we should follow the same approach or maybe
better already fix it on our side.
> 
> In CXFNonSpringServlet.java, when invoked as a servlet filter, in method doFilter the
original bus is restored:
> 
>                if (origBus != bus) {
>                    BusFactory.setThreadDefaultBus(origBus);
>                }
> 
> But when invoked as a servlet, in method invoke the original bus is nullified:
> 
>            if (origBus != bus) {
>                BusFactory.setThreadDefaultBus(null);
>            }
> 
> It seems to make sense and needed to also restore the original bus when invoked as a
servlet, like for example when a (different) filter, also using CXF but with its own bus,
is wrapping the servlet request.
> Not restoring the original bus but nullifying as it is done now, might potentially 'break'
this other filter if it still expects its own bus to be set.
> 
> Or is there maybe a subtle reason behind this different implementation?
> 
> Kind regards,
> Ate
> 

-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com


Mime
View raw message