You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2011/06/14 12:26:47 UTC

[jira] [Resolved] (CXF-3585) WSDLGetInterceptor throws NullPointException when using EndpointSelectionInterceptor

     [ https://issues.apache.org/jira/browse/CXF-3585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Freeman Fang resolved CXF-3585.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 2.5
                   2.4.2

commit fix
http://svn.apache.org/viewvc?rev=1135457&view=rev for trunk
http://svn.apache.org/viewvc?rev=1135465&view=rev for 2.4.x branch

> WSDLGetInterceptor throws NullPointException when using EndpointSelectionInterceptor
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-3585
>                 URL: https://issues.apache.org/jira/browse/CXF-3585
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.4
>            Reporter: David Liu
>            Assignee: Freeman Fang
>             Fix For: 2.4.2, 2.5
>
>
> Hi, 
>   It looks like WSDLGetInterceptor assumes that the current exchange has one Endpoint, however, there is the case we can use EndpointSelectionInterceptor to get the Endpoint later, so the Endpoint could be null and which causes NullPointException .
> e.g. WSDLGetInterceptor expects one Endpoint,
> {code}
> class WSDLGetInterceptor {
>         //cannot have two wsdl's being written for the same endpoint at the same
>         //time as the addresses may get mixed up
>         synchronized (message.getExchange().getEndpoint()) {  <-- NullPointException 
>  ...
> {code}
> However, the Endpoint is null at this moment and it will be set in EndpointSelectionInterceptor later.
> {code}
>     public void handleMessage(Message message) throws Fault {
>         Exchange ex = message.getExchange();
>         Set<Endpoint> endpoints = CastUtils.cast((Set)ex.get(MultipleEndpointObserver.ENDPOINTS));
>         Endpoint ep = selectEndpoint(message, endpoints);
>         if (ep == null) {
>             return;
>         }
>         ex.put(Endpoint.class, ep);
> {code}
> David

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira