You are viewing a plain text version of this content. The canonical link for it is here.
Posted to savan-dev@ws.apache.org by "Rich Scheuerle (JIRA)" <ji...@apache.org> on 2010/09/24 11:21:34 UTC
[jira] Assigned: (AXIS2-4822) 'equals ' and 'hashCode ' method is
missing in
org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl.class
[ https://issues.apache.org/jira/browse/AXIS2-4822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rich Scheuerle reassigned AXIS2-4822:
-------------------------------------
Assignee: Rich Scheuerle
> 'equals ' and 'hashCode ' method is missing in org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl.class
> ------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-4822
> URL: https://issues.apache.org/jira/browse/AXIS2-4822
> Project: Axis2
> Issue Type: Bug
> Components: jaxws
> Affects Versions: 1.5.1
> Environment: websphere 6.1.23 unix
> Reporter: Maryna Zilske
> Assignee: Rich Scheuerle
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> 'equals ' and 'hashCode ' method is missing in org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl.class
> The class org.apache.axis2.jaxws.description.impl. OperationDescriptionImpl.class has an attribute 'faultDescriptions'. This attribute is an ArrayList of org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl- objects.
> The class
> org.apache.axis2.jaxws.runtime.description.marshal.impl.MarshalServiceRuntimeDescriptionImpl has an attribute 'faultBeanDescMap'. This attribute is a HashMap contended:
> key value a org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl
> value object an instance of org.apache.axis2.jaxws.runtime.description.marshal.impl.FaultBeanDescImpl.class
> We have a productive runtime NullPointerEception in org.apache.axis2.jaxws.marshaller.impl.alt MethodMarshallerUtils in the method demarshalFaultResponse on line
> QName tryName = new (faultBeansDesc.getFaultBeanNameSpase ...
> because faultBeansDesc is null:
> Caused by: javax.xml.ws.WebServiceException: java.lang.NullPointerException
> at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:180)
> at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:79)
> at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:134)
> at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMethodMarshaller.demarshalFaultResponse(DocLitBareMethodMarshaller.java:372)
> at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:400)
> at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:373)
> at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:294)
> at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:147)
> at $Proxy30.ermittelnHilfsmittelVertraege(Unknown Source)
> at sun.reflect.GeneratedMethodAccessor938.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:416)
> at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:392)
> ... 40 more
> Caused by: java.lang.NullPointerException
> at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:887)
> at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMethodMarshaller.demarshalFaultResponse(DocLitBareMethodMarshaller.java:366)
> ... 50 more
> I switched the log level on axis2.jaxws and see:
> [14.09.10 08:18:51:002 CEST] 0000001e DescriptionFa 1 org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl createServiceDescription Cache Map = {org.apache.axis2.jaxws.description.DescriptionKey@b1873327=org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl@14881488
> ServiceQName: {http://de/}HelloImplService
> isWSDLSpecified: true; WSDL Location: file:./WEB-INF/wsdl/HelloImplService.wsdl
> WSDL Definition available: true; Generated WSDL Definition available: false
> Number of ports: 1
> Port QNames: {http://de/}HelloImplPort;
> Number of EndpointDescrptions: 1
> org.apache.axis2.jaxws.description.impl.EndpointDescriptionImpl@203c203c
> Name: HelloImpl; Endpoint Address: http://127.0.0.1:9080/FaultTest/HelloImplService
> ServiceQName: {http://de/}HelloImplService; PortQName: {http://de/}HelloImplPort; TargetNamespace: http://de/
> Service Mode: null; Binding Type: http://schemas.xmlsoap.org/wsdl/soap/http; Client Binding Type: http://schemas.xmlsoap.org/wsdl/soap/http
> Is provider-based: false; Is proxy-based: true; Is WSDL fully specified: true
> AxisService: org.apache.axis2.description.AxisService@5480548
> EndpointInterfaceDescription: org.apache.axis2.jaxws.description.impl.EndpointInterfaceDescriptionImpl@26a026a
> Name: HelloImpl; PortType: {http://de/}HelloImpl
> SOAP Style: DOCUMENT; SOAP Use: LITERAL; SOAP Paramater Style: WRAPPED
> Number of operations: 1
> Operation: org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl@2d802d8
> Name: sayHelloWorld; Operation Name: sayHelloWorld; Action:
> Operation excluded: false; Is oneway: false; Is returning result: true; Is result header: false; Is JAXWS Client Async method: false
> SOAP Style: DOCUMENT; SOAP Use: LITERAL; SOAP Paramater Style: WRAPPED
> Result name: return; Result part name: return; Result type: class java.lang.String; Result actual type: class java.lang.String
> Request Wrapper class: de.SayHelloWorld; Response Wrapper class: de.SayHelloWorldResponse
> Java declaring class name: de.HelloImpl
> Java method name: sayHelloWorld
> Java paramaters: [Ljava.lang.String;@44e844e8
> Service Implementation method: null
> Axis Operation: org.apache.axis2.description.OutInAxisOperation@3ece3ece
> Number of Parameter Descriptions: 1
> Parameter Description: org.apache.axis2.jaxws.description.impl.ParameterDescriptionImpl@13b813b8
> Name: arg0
> Is header: false; Is holder: false
> Mode: IN
> Type: class java.lang.String; Actual type: class java.lang.String
> Number of Fault Descriptions: 1
> Fault Description: org.apache.axis2.jaxws.description.impl.FaultDescriptionImpl@5f345f34
> Exception class: de.WebServiceFaultException_Exception
> Name: WebServiceFault
> Namespace: WebServiceFault
> FaultBean: de.WebServiceFaultException
> FaultInfo Type Name : de.WebServiceFaultException
> No Attachment Descriptions
> RuntimeDescriptions:0
> RuntimeDescriptions:1
> MarshalServiceRuntime:JAXWS-MARSHAL
> Packages = [de]
> AnnotationDesc cached for:de.SayHelloWorld
> @XMLRootElement exists = false
> AnnotationDesc cached for:de.WebServiceFaultException
> @XMLRootElement exists = false
> AnnotationDesc cached for:java.lang.String
> @XMLRootElement exists = false
> AnnotationDesc cached for:de.SayHelloWorldResponse
> @XMLRootElement exists = false
> PropertyDescriptorPlus Map cached for:de.SayHelloWorldResponse
> propertyName =return
> xmlName =return
> propertyType =java.lang.String
> PropertyDescriptorPlus Map cached for:de.SayHelloWorld
> propertyName =arg0
> xmlName =arg0
> propertyType =java.lang.String
> RequestWrappers
> Operation:sayHelloWorld RequestWrapper:de.SayHelloWorld ResponseWrappers
> Operation:sayHelloWorld ResponseWrapper:de.SayHelloWorldResponse FaultBeanDesc
> FaultException:de.WebServiceFaultException_Exception
> FaultBean Class Name :de.WebServiceFaultException
> FaultBean Namespace :http://de/
> FaultBean Local Name :WebServiceFault
> }
> The out- and in- messages are correct. If no
> RuntimeDescriptions:1
> MarshalServiceRuntime:JAXWS-MARSHAL
> ....
> in log file is available, the program runs correct. So the failure is only on runtime description fragment.
> Actually code in MethodMarshallerUtils musts fail, because:
>
> FaultDescription fd = operationDesc.getFaultDescriptions()[i];
> // gives an instance of FaultDescriptionImpl from ArrayList
> FaultBeanDesc faultBeanDesc = marshalDesc.getFaultBeanDesc(fd);
> // search for instance in another HashMap and a key value for search hasn't equals method,
> // the next code trays to operate with NULL object:
> QName tryQName = new QName(faultBeanDesc.getFaultBeanNamespace(), ...
> Please, consider to correct this bug.
> Our solution for production environment is to redefine the interface. There are only request and response messages and no fault any more. It is not pretty.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org