[
https://issues.apache.org/jira/browse/CXF-3379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13003596#comment-13003596
]
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:
{code}
Message contextMessage = m.getExchange() != null ?
m.getExchange().getInMessage() : m;
if (contextMessage == null &&
Boolean.FALSE.equals(m.get(Message.INBOUND_MESSAGE))) {
contextMessage = m;
}
{code}
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: https://issues.apache.org/jira/browse/CXF-3379
> 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 dependency."
> 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: http://www.atlassian.com/software/jira