[
https://issues.apache.org/jira/browse/CXF-3585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051467#comment-13051467
]
David Liu commented on CXF-3585:
--------------------------------
Thanks Freeman.
I extend EndpointSelectionInterceptor to choose different Endpoint in my cxf
server, so I did not use EndpointSelectionInterceptor directly.
David
> 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