cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ben Noordhuis (JIRA)" <>
Subject [jira] Commented: (CXF-3379) @Context fails to inject Application instance
Date Mon, 07 Mar 2011 20:58:59 GMT


Ben Noordhuis commented on CXF-3379:

Sergey, can you mentor me a little?

> you might want to drop contextMessage.getExchange() it can only be null if message.seyExchange(new
ExchangeImpl()) was not done in the test, never null in the real case

At the top of JAXRSUtils.createContextValue() this check is done:
Message contextMessage = m.getExchange() != null ? m.getExchange().getInMessage() : m;
if (contextMessage == null && Boolean.FALSE.equals(m.get(Message.INBOUND_MESSAGE)))
    contextMessage = m;
So conceivably it could be true that contextMessage == m and m.getExchange() == null, right?

> The only missing bit is the related ThreadLocal implementation

The Application object is a singleton, its thread safety the responsibility of the developer
- like servlets, really. How and why does a ThreadLocalProxy enter the mix? (There probably
is a splendid reason, I just haven't caught on yet.)

> @Context fails to inject Application instance
> ---------------------------------------------
>                 Key: CXF-3379
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.3.3
>            Reporter: Ben Noordhuis
> Quoting JSR 311:
> "The instance of the application-supplied Application subclass can be injected into a
class field or method parameter using the @Context annotation. Access to the Application subclass
instance allows configuration information to be centralized in that class. Note that this
cannot be injected into the Application subclass itself since this would create a circular
> JAXRSUtils.createContextValue() doesn't handle this. This bug exists in 2.3.x and HEAD.
> I'd submit a patch but I don't know where (or if) the Application class is registered
after it's instantiated by CXFNonSpringJaxrsServlet.

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message