You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Dan Rapp <Da...@whizbang.com> on 2002/01/09 19:05:04 UTC
IndexOutOfBoundsException in TypeMappingRegistry
An IndexOutOfBoundsException is thrown in TypeMappingRegistry (line 274)
if a message is generated with a complex type that does not have a
serializer specified.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:491)
at java.util.ArrayList.remove(ArrayList.java:375)
at
org.apache.axis.encoding.TypeMappingRegistry.serialize(TypeMappingRegist
ry.java:274)
at
org.apache.axis.encoding.SerializationContext.serialize(SerializationCon
text.java:425)
at
org.apache.axis.encoding.SerializationContext.outputMultiRefs(Serializat
ionContext.java:450)
at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:376)
at
org.apache.axis.message.MessageElement.output(MessageElement.java:454)
at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:329)
at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:272)
at org.apache.axis.Message.getContentType(Message.java:289)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:542)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
The following change may be an appropriate solution. (With this change
the appropriate exception, IOException: No serializer found for class X
in registry org.apache.axis.encoding.TypeMappingRegistry@5a2cef is
thrown.)
--Dan
Index: java/src/org/apache/axis/encoding/TypeMappingRegistry.java
===================================================================
RCS file:
/home/cvspublic/xml-axis/java/src/org/apache/axis/encoding/TypeMappingRe
gistry.java,v
retrieving revision 1.46
diff -u -r1.46 TypeMappingRegistry.java
--- java/src/org/apache/axis/encoding/TypeMappingRegistry.java 23 Dec
2001 12:33:32 -0000 1.46
+++ java/src/org/apache/axis/encoding/TypeMappingRegistry.java 9 Jan
2002 18:04:11 -0000
@@ -271,7 +271,12 @@
!_class.getName().equals("java.lang.Object"))
classes.add( _class );
- _class = (Class) classes.remove( 0 );
+ try {
+ _class = (Class) classes.remove( 0 );
+ } catch( IndexOutOfBoundsException e ) {
+ // classes.size can be 0 if a serializer isn't
specified
+ _class = null;
+ }
}
if ( ser != null ) {