.NET interop: rpc/encoded array of array: regression from RC2
-------------------------------------------------------------
Key: AXIS-1966
URL: http://issues.apache.org/jira/browse/AXIS-1966
Project: Axis
Type: Bug
Components: Serialization/Deserialization
Versions: current (nightly)
Environment: Axis 1.2RC3 nightly
Reporter: Tim K
Priority: Blocker
Attachments: RemoteLoginManager.wsdl, dotNetRequest.xml
NOTE: This is a regression from RC2, hence a blocker bug.
Please see the attached WSDL. The complex type AttributeRequest worked fine
with .NET as a client and Axis RC2, but it stopped working with the latest CVS.
Attachments:
- RemoteLoginManager.wsdl - WSDL file
- dotNetRequest.xml - the SOAP request sent by a .NET client
- axisRequest.xml - the same request but from an Axis client, to compare the
encodings with the .NET client request
This is an interop issue, the .NET client is not able to send something like
this:
AttributeRequest[] nestedUserar = new AttributeRequest[1];
nestedUserar[0] = new AttributeRequest();
nestedUserar[0].setAttributeName(Attributes.LOCK_TYPE);
AttributeRequest[] userar = new AttributeRequest[1];
userar[0] = new AttributeRequest();
userar[0].setAttributeName(Attributes.LOCKS);
userar[0].setRequestedAttributes(nestedUserar);
remoteLoginStub.login("bla", "bla", new NamedValue[0], userar);
The following exception is thrown on the server side:
----
Apr 28, 2005 9:39:24 AM org.apache.axis.encoding.ser.BeanPropertyTarget set
SEVERE: Could not convert [Loracle.ifs.fdk.AttributeRequest; to bean field
'requestedAttributes[0]', type
oracle.ifs.fdk.AttributeRequest
Apr 28, 2005 9:39:24 AM org.apache.axis.transport.http.AxisServlet
processAxisFault
INFO: AxisFault:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.IllegalArgumentException: array element type mismatch
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.lang.IllegalArgumentException:
array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at
org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:183)
at
org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:91)
at
org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249)
at
org.apache.axis.encoding.ser.ArrayDeserializer.valueComplete(ArrayDeserializer.java:570)
at
org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509)
at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:148)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at
oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:93)
at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at
oracle.ifs.fdk.http.AxisSecurityFilter.doFilter(AxisSecurityFilter.java:83)
at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
{http://xml.apache.org/axis/}hostname:stadc37.us.oracle.com
{http://xml.apache.org/axis/}isRuntimeException:true
java.lang.IllegalArgumentException: array element type mismatch
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:329)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at
oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:93)
at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
at
oracle.ifs.fdk.http.AxisSecurityFilter.doFilter(AxisSecurityFilter.java:83)
at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at
org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:183)
at
org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:91)
at
org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249)
at
org.apache.axis.encoding.ser.ArrayDeserializer.valueComplete(ArrayDeserializer.java:570)
at
org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509)
at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1140)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:148)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
... 22 more
---
NOTE: This is a regression from RC2, hence a blocker bug.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira