cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William (BJ) Blackburn (JIRA)" <>
Subject [jira] Commented: (CXF-2620) CXFServlet fails to init with NPE at line 125 (updateContext) when run with embedded Jetty and Spring3 - works with Spring 2.5.6
Date Mon, 18 Jan 2010 21:04:54 GMT


William (BJ) Blackburn commented on CXF-2620:

Please forgive this piecemeal narrative. It now appears that something could be done in CXFServlet
to insulate against this issue. I have discovered that the problem is with the implementation
of 'onApplicationEvent' in CXFServlet. 

I added some tracing to this code. Under Spring 2.5.6 - I saw no evidence that this method
was ever called at all. When running under Spring 3.0 this method was called multiple times
- the first call happening BEFORE  servletConfig was actually available, and subsequently
two more times, resulting in unnecessary context updates that resulted in this information
log entry:

    INFO: Servlet transport factory already registered

It seems that at minimum, the execution of updateContext should only happen if the ServletConfig
is non-null. It also appears that the use of the 'inRefresh' flag is insufficient to guard
against rapid fire repeat events as seem to be raised in Spring 3.0.

> CXFServlet fails to init with NPE at line 125 (updateContext) when run with embedded
Jetty and Spring3 - works with Spring 2.5.6
> --------------------------------------------------------------------------------------------------------------------------------
>                 Key: CXF-2620
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.2.5
>         Environment: Spring 3.0.0.RELEASE / Jetty 6.1.8 (embedded)
>            Reporter: William (BJ) Blackburn
>         Attachments:
> I have been using CXF 2.2.3 (also tested with 2.2.5) with Spring 2.5.6 and an embedded
Jetty instance successfully for several months. After the release of Spring 3.0, I have tried
migrating to the new Spring version. Now the CXF Servlet is failing with a nullpointerexception
on the 'updateContext' method:
> Caused by: java.lang.NullPointerException
> 	at org.apache.cxf.transport.servlet.CXFServlet.updateContext(
> 	at org.apache.cxf.transport.servlet.CXFServlet.onApplicationEvent(
> 	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(
> 	at
> 	at
> 	at
> 	at
> The line that is failing is:
>    resourceManager.addResourceResolver(new ServletContextResourceResolver(servletConfig.getServletContext()));
> I can only reproduce this issue using an 'embedded' jetty instance, I have attached a
test case. By switching between spring 2.5.6 and spring 3.0, you can see from the log output
that the servlet successfully initialized under 2.5.6, but fails under 3.0.
> I understand this may be a very narrow case involving only this method of loading the
servlet, so if no fix is required in CXF, some advice as to a workaround would be very welcome.
Thank you.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message