[ 
https://issues.apache.org/jira/browse/CXF-1737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12620788#action_12620788
 ] 

Simon Lessard commented on CXF-1737:
------------------------------------

I couldn't reproduce that issue, but found out the following piece of code 
within DefaultServiceConfiguration:

    @Override
    public Boolean hasOutMessage(Method m) {
        if (m.getReturnType().getClass().equals(void.class) && 
m.getExceptionTypes().length == 0) {
            return false;
        }
        return true;
    }

I believe Java 5 will do some auto-boxing with void.class that might result in 
Void.class which is, I think, different from Void.TYPE. So, since Void.TYPE is 
the Class representation of the primitive void, changing the method to the 
following might do the trick:

    @Override
    public Boolean hasOutMessage(Method m) {
        if (m.getReturnType().getClass().equals(Void.TYPE) && 
m.getExceptionTypes().length == 0) {
            return false;
        }
        return true;
    }



> NPE in ClientProxyFactoryBean on void methods 
> ----------------------------------------------
>
>                 Key: CXF-1737
>                 URL: https://issues.apache.org/jira/browse/CXF-1737
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.1
>            Reporter: Andreas Benneke
>
> If you try to access a service containing a method returning nothing (void), 
> the ClientProxyFactoryBean fails with a NullPointerException:
> Exception in thread "main" java.lang.NullPointerException
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeParameter(ReflectionServiceFactoryBean.java:643)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeClassInfo(ReflectionServiceFactoryBean.java:609)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperation(ReflectionServiceFactoryBean.java:540)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:510)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:305)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:394)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181)
>       at 
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79)
>       at 
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
>       at 
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97)
> If you change the method returning something or eliminate the method 
> altogether, everything works fine...

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

Reply via email to