DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12800>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12800 Zero-length strings cannot be deserialized - solution included Summary: Zero-length strings cannot be deserialized - solution included Product: Axis Version: current (nightly) Platform: All OS/Version: All Status: NEW Severity: Major Priority: Other Component: Serialization/Deserialization AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] If my client gets back an 'empty' tag in a complex type, I get this stack trace: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.axis.encoding.ser.SimpleDeserializer.onEndElement (SimpleDeserializer.java:224) at org.apache.axis.encoding.DeserializerImpl.endElement (DeserializerImpl.java:494) at org.apache.axis.encoding.DeserializationContextImpl.endElement (DeserializationContextImpl.java:932) at org.apache.axis.message.SAX2EventRecorder.replay (SAX2EventRecorder.java:164) at org.apache.axis.message.MessageElement.publishToHandler (MessageElement.java:681) at org.apache.axis.encoding.DeserializerImpl.startElement (DeserializerImpl.java:369) at org.apache.axis.encoding.ser.BeanDeserializer.startElement (BeanDeserializer.java:167) at org.apache.axis.encoding.DeserializationContextImpl.startElement (DeserializationContextImpl.java:896) at org.apache.axis.message.SAX2EventRecorder.replay (SAX2EventRecorder.java:158) at org.apache.axis.message.MessageElement.publishToHandler (MessageElement.java:681) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:244) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:268) at org.apache.axis.client.Call.invoke(Call.java:1862) at org.apache.axis.client.Call.invoke(Call.java:1768) at org.apache.axis.client.Call.invoke(Call.java:1306) at com.touchcorp.soap.ihire.IHirebindingStub.getHireFromCustomerLicence (IHirebindingStub.java:257) at com.touchcorp.remote.party.MystHireService.getHireFromCustomerLicence (MystHireService.java:141) at com.touchcorp.remote.party.MystHireService.main (MystHireService.java:188) [ERROR] Call - -Exception: <java.lang.StringIndexOutOfBoundsException: String index out of range: 0> Exception in thread "main" AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultString: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 faultActor: null faultDetail: stackTrace: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.axis.encoding.ser.SimpleDeserializer.onEndElement (SimpleDeserializer.java:224) at org.apache.axis.encoding.DeserializerImpl.endElement (DeserializerImpl.java:494) at org.apache.axis.encoding.DeserializationContextImpl.endElement (DeserializationContextImpl.java:932) at org.apache.axis.message.SAX2EventRecorder.replay (SAX2EventRecorder.java:164) at org.apache.axis.message.MessageElement.publishToHandler (MessageElement.java:681) at org.apache.axis.encoding.DeserializerImpl.startElement (DeserializerImpl.java:369) ... (goes FOREVER) All that need be done to rectify this is to perform the simplest sanity test on line 209 of org.apache.axis.encoding.ser.SimpleDeserializer.java: replace: if (isNil) { value = null; return; } with: if (isNil || val == null || val.length() == 0) { value = null; return; } Someone REALLY needs to make this code industrial-strength. Where I work, null- checking is mandatory.