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 Glen Daniels <gd...@macromedia.com> on 2002/09/25 21:50:17 UTC

RE: [VOTE] incorporate the following fixes in to the 1_0 branch a nd into rc2

+1 for both, these fixes are all good.

> -----Original Message-----
> From: Sam Ruby [mailto:rubys@apache.org]
> Sent: Wednesday, September 25, 2002 3:46 PM
> To: axis-dev@xml.apache.org
> Subject: [VOTE] incorporate the following fixes in to the 1_0 
> branch and
> into rc2
> 
> 
> Index: java/README
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/README,v
> retrieving revision 1.12.4.1
> retrieving revision 1.13
> diff -u -r1.12.4.1 -r1.13
> Index: java/axis.properties
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/axis.properties,v
> retrieving revision 1.9
> retrieving revision 1.10
> diff -u -r1.9 -r1.10
> --- java/axis.properties        30 Aug 2002 19:34:26 -0000      1.9
> +++ java/axis.properties        25 Sep 2002 19:01:45 -0000      1.10
> @@ -1,4 +1,4 @@
> -axis.version=beta 4
> +axis.version=1.0rc2
> 
>   name=axis
>   Name=Axis
> Index: java/build.xml
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/build.xml,v
> retrieving revision 1.196
> retrieving revision 1.197
> diff -u -r1.196 -r1.197
> --- java/build.xml      24 Sep 2002 23:47:01 -0000      1.196
> +++ java/build.xml      25 Sep 2002 16:20:46 -0000      1.197
> @@ -281,7 +281,7 @@
> 
>     </target>
> 
> -  <target name="componentTest" depends="compile, buildTest">
> +  <target name="runComponentTests" depends="compile, buildTest">
>        <ant inheritAll="${ant.inheritAll}" 
> inheritRefs="${ant.inheritRefs}" dir="${axis.home}" 
> antfile="buildTest.xml" target="componentTest"/>
>     </target>
> 
> Index: java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WS
> DDDeployment.java,v
> retrieving revision 1.49
> retrieving revision 1.50
> diff -u -r1.49 -r1.50
> --- java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java 
> 25 Sep 2002 00:55:08 -0000      1.49
> +++ java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java 
> 25 Sep 2002 15:10:18 -0000      1.50
> @@ -567,10 +567,7 @@
>                   serviceDescs.add(service.getServiceDesc());
>               } catch (WSDDNonFatalException ex) {
>                   // If it's non-fatal, just keep on going
> -                ex.printStackTrace();
> -            } catch (WSDDException ex) {
> -                // otherwise throw it upwards
> -                throw ex;
> +                log.debug("Ingoring non-fatal exception: ", ex);
>               }
>           }
>           return serviceDescs.iterator();
> Index: java/src/org/apache/axis/description/ServiceDesc.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/description/Servic
> eDesc.java,v
> retrieving revision 1.60
> retrieving revision 1.61
> diff -u -r1.60 -r1.61
> --- java/src/org/apache/axis/description/ServiceDesc.java     
>   24 Sep 
> 2002 21:02:23 -0000      1.60
> +++ java/src/org/apache/axis/description/ServiceDesc.java     
>   25 Sep 
> 2002 16:54:24 -0000      1.61
> @@ -431,7 +431,9 @@
> 
>           if (overloads == null) {
>               // Nothing specifically matching this QName.
> -            if ((style == Style.RPC) && (name2OperationsMap 
> != null)) {
> +            if (((style == Style.RPC) || ((style==Style.MESSAGE) &&
> +                                          (getDefaultNamespace() == 
> null))) &&
> +                    (name2OperationsMap != null)) {
>                   // Try ignoring the namespace....?
>                   overloads = 
> (ArrayList)name2OperationsMap.get(qname.getLocalPart());
>               }
> Index: 
> java/src/org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultSO
> AP12TypeMappingImpl.java,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- 
> java/src/org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.java 
> 22 May 2002 18:59:15 -0000      1.4
> +++ 
> java/src/org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.java 
> 25 Sep 2002 16:29:47 -0000      1.5
> @@ -98,26 +98,19 @@
> 
>           // SOAP Encoded strings are treated as primitives.
>           // Everything else is not.
> -        myRegister(Constants.SOAP_STRING,     java.lang.String.class,
> -                   null, null, true);
> -        myRegister(Constants.SOAP_BOOLEAN,    
> java.lang.Boolean.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_DOUBLE,     java.lang.Double.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_FLOAT,      java.lang.Float.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_INT,        
> java.lang.Integer.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_INTEGER,    
> java.math.BigInteger.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_DECIMAL,    
> java.math.BigDecimal.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_LONG,       java.lang.Long.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_SHORT,      java.lang.Short.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_BYTE,       java.lang.Byte.class,
> -                   null, null, false);
> +        myRegisterSimple(Constants.SOAP_STRING, 
> java.lang.String.class, 
> true);
> +        myRegisterSimple(Constants.SOAP_BOOLEAN,
> +                         java.lang.Boolean.class, false);
> +        myRegisterSimple(Constants.SOAP_DOUBLE, 
> java.lang.Double.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_FLOAT, 
> java.lang.Float.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_INT, 
> java.lang.Integer.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_INTEGER,
> +                         java.math.BigInteger.class, false);
> +        myRegisterSimple(Constants.SOAP_DECIMAL, 
> java.math.BigDecimal.class,
> +                         false);
> +        myRegisterSimple(Constants.SOAP_LONG, 
> java.lang.Long.class, false);
> +        myRegisterSimple(Constants.SOAP_SHORT, 
> java.lang.Short.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_BYTE, 
> java.lang.Byte.class, false);
> 
>           // SOAP 1.2
>           // byte[] -ser-> SOAP_BASE64
> @@ -127,7 +120,7 @@
>                      new Base64SerializerFactory(byte[].class,
>                                                  
> Constants.SOAP_BASE64 ),
>                      new Base64DeserializerFactory(byte[].class,
> -                                                 
> Constants.SOAP_BASE64),
> -                   true);
> +                                                 
> Constants.SOAP_BASE64)
> +        );
>       }
>   }
> Index: java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTy
> peMappingImpl.java,v
> retrieving revision 1.55
> retrieving revision 1.57
> diff -u -r1.55 -r1.57
> --- java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java 
> 18 Sep 2002 16:10:37 -0000      1.55
> +++ java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java 
> 25 Sep 2002 18:27:03 -0000      1.57
> @@ -149,45 +149,36 @@
>                               Constants.MIME_PLAINTEXT),
>                       new JAFDataHandlerDeserializerFactory(
>                               java.lang.String.class,
> -                            Constants.MIME_PLAINTEXT), false);
> +                            Constants.MIME_PLAINTEXT));
>           }
> 
>           // SOAP Encoded strings are treated as primitives.
>           // Everything else is not.
> -        // Note that only deserializing is supported since 
> we are flowing
> -        // SOAP 1.1 over the wire.
> -        myRegister(Constants.SOAP_STRING,     java.lang.String.class,
> -                   null, null, true);
> -        myRegister(Constants.SOAP_BOOLEAN,    
> java.lang.Boolean.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_DOUBLE,     java.lang.Double.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_FLOAT,      java.lang.Float.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_INT,        
> java.lang.Integer.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_INTEGER,    
> java.math.BigInteger.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_DECIMAL,    
> java.math.BigDecimal.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_LONG,       java.lang.Long.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_SHORT,      java.lang.Short.class,
> -                   null, null, false);
> -        myRegister(Constants.SOAP_BYTE,       java.lang.Byte.class,
> -                   null, null, false);
> +        myRegisterSimple(Constants.SOAP_STRING, 
> java.lang.String.class, 
> true);
> +        myRegisterSimple(Constants.SOAP_BOOLEAN,
> +                         java.lang.Boolean.class, false);
> +        myRegisterSimple(Constants.SOAP_DOUBLE, 
> java.lang.Double.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_FLOAT, 
> java.lang.Float.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_INT, 
> java.lang.Integer.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_INTEGER,
> +                         java.math.BigInteger.class, false);
> +        myRegisterSimple(Constants.SOAP_DECIMAL, 
> java.math.BigDecimal.class,
> +                         false);
> +        myRegisterSimple(Constants.SOAP_LONG, 
> java.lang.Long.class, false);
> +        myRegisterSimple(Constants.SOAP_SHORT, 
> java.lang.Short.class, 
> false);
> +        myRegisterSimple(Constants.SOAP_BYTE, 
> java.lang.Byte.class, false);
> 
>           // HexBinary binary data needs to use the hex binary 
> serializer/deserializer
>           myRegister(Constants.XSD_HEXBIN,     HexBinary.class,
>                      new HexSerializerFactory(
>                           HexBinary.class, Constants.XSD_HEXBIN),
>                      new HexDeserializerFactory(
> -                        HexBinary.class, Constants.XSD_HEXBIN),true);
> +                        HexBinary.class, Constants.XSD_HEXBIN));
>           myRegister(Constants.XSD_HEXBIN,     byte[].class,
>                      new HexSerializerFactory(
>                           byte[].class, Constants.XSD_HEXBIN),
>                      new HexDeserializerFactory(
> -                        byte[].class, Constants.XSD_HEXBIN),true);
> +                        byte[].class, Constants.XSD_HEXBIN));
> 
>           // SOAP 1.1
>           // byte[] -ser-> XSD_BASE64
> @@ -204,20 +195,20 @@
>           // as discrete bytes without interference with XSD_BASE64.
>           myRegister(Constants.XSD_BYTE,       byte[].class,
>                      new ArraySerializerFactory(),
> -                   null,
> -                   false);
> +                   null
> +        );
> 
>           myRegister(Constants.SOAP_BASE64,     byte[].class,
>                      new Base64SerializerFactory(byte[].class,
>                                                  
> Constants.SOAP_BASE64 ),
>                      new Base64DeserializerFactory(byte[].class,
> -                                                 
> Constants.SOAP_BASE64),
> -                   true);
> +                                                 
> Constants.SOAP_BASE64)
> +        );
>           myRegister(Constants.XSD_BASE64,     byte[].class,
>                      new Base64SerializerFactory(byte[].class,
>                                                  
> Constants.XSD_BASE64 ),
>                      new Base64DeserializerFactory(byte[].class,
> -                                           
> Constants.XSD_BASE64),true);
> +                                           Constants.XSD_BASE64));
>           /*
>           // This JSR 101 change occurred right before v1.0.
>           // This mapping is not roundtrippable, and breaks 
> the roundtrip
> @@ -251,42 +242,27 @@
>           */
> 
>           // If SOAP 1.1 over the wire, map wrapper classes to XSD 
> primitives.
> -        myRegister(Constants.XSD_STRING,     java.lang.String.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_BOOLEAN,    java.lang.Boolean.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_DOUBLE,     java.lang.Double.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_FLOAT,      java.lang.Float.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_INT,        java.lang.Integer.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_INTEGER,    
> java.math.BigInteger.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_DECIMAL,    
> java.math.BigDecimal.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_LONG,       java.lang.Long.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_SHORT,      java.lang.Short.class,
> -                   null, null, true);
> -        myRegister(Constants.XSD_BYTE,       java.lang.Byte.class,
> -                   null, null, true);
> +        myRegisterSimple(Constants.XSD_STRING, 
> java.lang.String.class, 
> true);
> +        myRegisterSimple(Constants.XSD_BOOLEAN, 
> java.lang.Boolean.class, true);
> +        myRegisterSimple(Constants.XSD_DOUBLE, 
> java.lang.Double.class, 
> true);
> +        myRegisterSimple(Constants.XSD_FLOAT, 
> java.lang.Float.class, true);
> +        myRegisterSimple(Constants.XSD_INT, 
> java.lang.Integer.class, true);
> +        myRegisterSimple(Constants.XSD_INTEGER, 
> java.math.BigInteger.class,
> +                         true);
> +        myRegisterSimple(Constants.XSD_DECIMAL, 
> java.math.BigDecimal.class,
> +                         true);
> +        myRegisterSimple(Constants.XSD_LONG, 
> java.lang.Long.class, true);
> +        myRegisterSimple(Constants.XSD_SHORT, 
> java.lang.Short.class, true);
> +        myRegisterSimple(Constants.XSD_BYTE, 
> java.lang.Byte.class, true);
> 
>           // The XSD Primitives are mapped to java primitives.
> -        myRegister(Constants.XSD_BOOLEAN,    boolean.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_DOUBLE,     double.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_FLOAT,      float.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_INT,        int.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_LONG,       long.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_SHORT,      short.class,
> -                   null, null,true);
> -        myRegister(Constants.XSD_BYTE,       byte.class,
> -                   null, null,true);
> +        myRegisterSimple(Constants.XSD_BOOLEAN, boolean.class, true);
> +        myRegisterSimple(Constants.XSD_DOUBLE, double.class, true);
> +        myRegisterSimple(Constants.XSD_FLOAT, float.class, true);
> +        myRegisterSimple(Constants.XSD_INT, int.class, true);
> +        myRegisterSimple(Constants.XSD_LONG, long.class, true);
> +        myRegisterSimple(Constants.XSD_SHORT, short.class, true);
> +        myRegisterSimple(Constants.XSD_BYTE, byte.class, true);
> 
>           // Map QNAME to the jax rpc QName class
>           myRegister(Constants.XSD_QNAME,
> @@ -294,12 +270,12 @@
>                 new 
> QNameSerializerFactory(javax.xml.namespace.QName.class,
>                                           Constants.XSD_QNAME),
>                 new 
> QNameDeserializerFactory(javax.xml.namespace.QName.class,
> -                                        Constants.XSD_QNAME),
> -                   true);
> +                                        Constants.XSD_QNAME)
> +        );
> 
>           // The closest match for anytype is Object
>           myRegister(Constants.XSD_ANYTYPE,    java.lang.Object.class,
> -                   null, null, false);
> +                   null, null);
> 
>           // See the SchemaVersion classes for where the 
> registration of
>           // dateTime (for 2001) and timeInstant (for 1999 & 
> 2000) happen.
> @@ -307,47 +283,47 @@
>                      new DateSerializerFactory(java.util.Date.class,
>                                                Constants.XSD_DATE),
>                      new DateDeserializerFactory(java.util.Date.class,
> -                                               Constants.XSD_DATE),
> -                   true);
> +                                               Constants.XSD_DATE)
> +        );
> 
>           // Mapping for xsd:time.  Map to Axis type Time
>           myRegister(Constants.XSD_TIME, 
> org.apache.axis.types.Time.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Time.class,
>                                                Constants.XSD_TIME),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.Time.class,
> -                                               Constants.XSD_TIME),
> -                   true);
> +                                               Constants.XSD_TIME)
> +        );
>           // These are the g* types (gYearMonth, etc) which 
> map to Axis 
> types
>           myRegister(Constants.XSD_YEARMONTH, 
> org.apache.axis.types.YearMonth.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.YearMon
> th.class,
>                                                
> Constants.XSD_YEARMONTH),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.YearMonth.class,
> -                                             
> Constants.XSD_YEARMONTH),
> -                   true);
> +                                             Constants.XSD_YEARMONTH)
> +        );
>           myRegister(Constants.XSD_YEAR, 
> org.apache.axis.types.Year.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Year.class,
>                                                Constants.XSD_YEAR),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.Year.class,
> -                                             Constants.XSD_YEAR),
> -                   true);
> +                                             Constants.XSD_YEAR)
> +        );
>           myRegister(Constants.XSD_MONTH, 
> org.apache.axis.types.Month.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Month.class,
>                                                Constants.XSD_MONTH),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.Month.class,
> -                                             Constants.XSD_MONTH),
> -                   true);
> +                                             Constants.XSD_MONTH)
> +        );
>           myRegister(Constants.XSD_DAY, 
> org.apache.axis.types.Day.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Day.class,
> -                                             
> Constants.XSD_YEARMONTH),
> +                                             Constants.XSD_DAY),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.Day.class,
> -                                             
> Constants.XSD_YEARMONTH),
> -                   true);
> +                                             Constants.XSD_DAY)
> +        );
>           myRegister(Constants.XSD_MONTHDAY, 
> org.apache.axis.types.MonthDay.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.MonthDay.class,
>                                                
> Constants.XSD_MONTHDAY),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.MonthDay.class,
> -                                             Constants.XSD_MONTHDAY),
> -                   true);
> +                                             Constants.XSD_MONTHDAY)
> +        );
> 
>           // Serialize all extensions of Map to SOAP_MAP
>           // The SOAP_MAP will be deserialized into a HashMap 
> by default.
> @@ -355,29 +331,29 @@
>                      new MapSerializerFactory(java.util.Map.class,
>                                               Constants.SOAP_MAP),
>                      new 
> MapDeserializerFactory(java.util.HashMap.class,
> -                                              Constants.SOAP_MAP),
> -                   false);
> +                                              Constants.SOAP_MAP)
> +        );
>           myRegister(Constants.SOAP_MAP,       
> java.util.Hashtable.class,
>                      new 
> MapSerializerFactory(java.util.Hashtable.class,
>                                               Constants.SOAP_MAP),
> -                   null,  // Make sure not to override the 
> deser mapping
> -                   false);
> +                   null  // Make sure not to override the 
> deser mapping
> +        );
>           myRegister(Constants.SOAP_MAP,       java.util.Map.class,
>                      new MapSerializerFactory(java.util.Map.class,
>                                               Constants.SOAP_MAP),
> -                   null,  // Make sure not to override the 
> deser mapping
> -                   false);
> +                   null  // Make sure not to override the 
> deser mapping
> +        );
> 
>           // Use the Element Serializeration for elements
>           myRegister(Constants.SOAP_ELEMENT,   
> org.w3c.dom.Element.class,
>                      new ElementSerializerFactory(),
> -                   new ElementDeserializerFactory(), false);
> +                   new ElementDeserializerFactory());
>           myRegister(Constants.SOAP_VECTOR,    java.util.Vector.class,
>                      new 
> VectorSerializerFactory(java.util.Vector.class,
>                                                  
> Constants.SOAP_VECTOR),
>                      new 
> VectorDeserializerFactory(java.util.Vector.class,
> -                                                 
> Constants.SOAP_VECTOR),
> -                   false);
> +                                                 
> Constants.SOAP_VECTOR)
> +        );
> 
>           // Register all the supported MIME types
>           // (note that MIME_PLAINTEXT was registered near the top)
> @@ -388,24 +364,24 @@
>                               Constants.MIME_IMAGE),
>                       new JAFDataHandlerDeserializerFactory(
>                               java.awt.Image.class,
> -                            Constants.MIME_IMAGE), false);
> +                            Constants.MIME_IMAGE));
>               myRegister(Constants.MIME_MULTIPART, 
> javax.mail.internet.MimeMultipart.class,
>                       new JAFDataHandlerSerializerFactory(
>                               javax.mail.internet.MimeMultipart.class,
>                               Constants.MIME_MULTIPART),
>                       new JAFDataHandlerDeserializerFactory(
>                               javax.mail.internet.MimeMultipart.class,
> -                            Constants.MIME_MULTIPART), false);
> +                            Constants.MIME_MULTIPART));
>               myRegister(Constants.MIME_SOURCE, 
> javax.xml.transform.Source.class,
>                       new JAFDataHandlerSerializerFactory(
>                               javax.xml.transform.Source.class,
>                               Constants.MIME_SOURCE),
>                       new JAFDataHandlerDeserializerFactory(
>                               javax.xml.transform.Source.class,
> -                            Constants.MIME_SOURCE), false);
> +                            Constants.MIME_SOURCE));
>               myRegister(Constants.MIME_DATA_HANDLER, 
> javax.activation.DataHandler.class,
>                       new JAFDataHandlerSerializerFactory(),
> -                    new JAFDataHandlerDeserializerFactory(), false);
> +                    new JAFDataHandlerDeserializerFactory());
>           }
> 
>           // xsd:token
> @@ -413,120 +389,120 @@
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Token.class,
>                                                Constants.XSD_TOKEN),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.Token.class,
> -                                             Constants.XSD_TOKEN),
> -                   true);
> +                                             Constants.XSD_TOKEN)
> +        );
> 
>           // a xsd:normalizedString
>           myRegister(Constants.XSD_NORMALIZEDSTRING, 
> org.apache.axis.types.NormalizedString.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Normali
> zedString.class,
>  
> Constants.XSD_NORMALIZEDSTRING),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.NormalizedStri
> ng.class,
> - 
> Constants.XSD_NORMALIZEDSTRING),
> -                   true);
> + 
> Constants.XSD_NORMALIZEDSTRING)
> +        );
> 
>           // a xsd:unsignedLong
>           myRegister(Constants.XSD_UNSIGNEDLONG, 
> org.apache.axis.types.UnsignedLong.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Unsigne
> dLong.class,
>  
> Constants.XSD_UNSIGNEDLONG),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.UnsignedLong.class,
> -                                           
> Constants.XSD_UNSIGNEDLONG),
> -             true);
> +                                           
> Constants.XSD_UNSIGNEDLONG)
> +        );
> 
>           // a xsd:unsignedInt
>           myRegister(Constants.XSD_UNSIGNEDINT, 
> org.apache.axis.types.UnsignedInt.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Unsigne
> dInt.class,
>  
> Constants.XSD_UNSIGNEDINT),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.UnsignedInt.class,
> -                                           
> Constants.XSD_UNSIGNEDINT),
> -             true);
> +                                           Constants.XSD_UNSIGNEDINT)
> +        );
> 
>           // a xsd:unsignedShort
>           myRegister(Constants.XSD_UNSIGNEDSHORT, 
> org.apache.axis.types.UnsignedShort.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Unsigne
> dShort.class,
>  
> Constants.XSD_UNSIGNEDSHORT),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.UnsignedShort.class,
> -                                           
> Constants.XSD_UNSIGNEDSHORT),
> -             true);
> +                                           
> Constants.XSD_UNSIGNEDSHORT)
> +        );
> 
>           // a xsd:unsignedByte
>           myRegister(Constants.XSD_UNSIGNEDBYTE, 
> org.apache.axis.types.UnsignedByte.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Unsigne
> dByte.class,
>                                                
> Constants.XSD_UNSIGNEDBYTE),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.UnsignedByte.class,
> -                                             
> Constants.XSD_UNSIGNEDBYTE),
> -                   true);
> +                                             
> Constants.XSD_UNSIGNEDBYTE)
> +        );
> 
>           // a xsd:nonNegativeInteger
>           myRegister(Constants.XSD_NONNEGATIVEINTEGER, 
> org.apache.axis.types.NonNegativeInteger.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.NonNega
> tiveInteger.class,
>  
> Constants.XSD_NONNEGATIVEINTEGER),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.NonNegativeInt
> eger.class,
> - 
> Constants.XSD_NONNEGATIVEINTEGER),
> -             true);
> + 
> Constants.XSD_NONNEGATIVEINTEGER)
> +        );
> 
>           // a xsd:negativeInteger
>           myRegister(Constants.XSD_NEGATIVEINTEGER, 
> org.apache.axis.types.NegativeInteger.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Negativ
> eInteger.class,
>  
> Constants.XSD_NEGATIVEINTEGER),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.NegativeInteger.class,
> -                                           
> Constants.XSD_NEGATIVEINTEGER),
> -             true);
> +                                           
> Constants.XSD_NEGATIVEINTEGER)
> +        );
> 
>           // a xsd:positiveInteger
>           myRegister(Constants.XSD_POSITIVEINTEGER, 
> org.apache.axis.types.PositiveInteger.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Positiv
> eInteger.class,
>  
> Constants.XSD_POSITIVEINTEGER),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.PositiveInteger.class,
> -                                           
> Constants.XSD_POSITIVEINTEGER),
> -             true);
> +                                           
> Constants.XSD_POSITIVEINTEGER)
> +        );
> 
>           // a xsd:nonPositiveInteger
>           myRegister(Constants.XSD_NONPOSITIVEINTEGER, 
> org.apache.axis.types.NonPositiveInteger.class,
>                new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.NonPosi
> tiveInteger.class,
>  
> Constants.XSD_NONPOSITIVEINTEGER),
>                new 
> SimpleDeserializerFactory(org.apache.axis.types.NonPositiveInt
> eger.class,
> - 
> Constants.XSD_NONPOSITIVEINTEGER),
> -             true);
> + 
> Constants.XSD_NONPOSITIVEINTEGER)
> +        );
> 
>           // a xsd:Name
>           myRegister(Constants.XSD_NAME, 
> org.apache.axis.types.Name.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Name.class,
>                                                Constants.XSD_NAME),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.Name.class,
> -                                             Constants.XSD_NAME),
> -                   true);
> +                                             Constants.XSD_NAME)
> +        );
> 
>           // a xsd:NCName
>           myRegister(Constants.XSD_NCNAME, 
> org.apache.axis.types.NCName.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.NCName.class,
>                                                Constants.XSD_NCNAME),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.NCName.class,
> -                                             Constants.XSD_NCNAME),
> -                   true);
> +                                             Constants.XSD_NCNAME)
> +        );
> 
>           // a xsd:NmToken
>           myRegister(Constants.XSD_NMTOKEN, 
> org.apache.axis.types.NMToken.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.NMToken.class,
>                                                Constants.XSD_NMTOKEN),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.NMToken.class,
> -                                             Constants.XSD_NMTOKEN),
> -                   true);
> +                                             Constants.XSD_NMTOKEN)
> +        );
> 
>           // a xsd:Duration
>           myRegister(Constants.XSD_DURATION, 
> org.apache.axis.types.Duration.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.Duration.class,
>                                                
> Constants.XSD_DURATION),
>                      new 
> SimpleDeserializerFactory(org.apache.axis.types.Duration.class,
> -                                             Constants.XSD_DURATION),
> -                   true);
> +                                             Constants.XSD_DURATION)
> +        );
> 
>           // a xsd:anyURI
>           myRegister(Constants.XSD_ANYURI, 
> org.apache.axis.types.URI.class,
>                      new 
> SimplePrimitiveSerializerFactory(org.apache.axis.types.URI.class,
>                                                Constants.XSD_ANYURI),
>                      new 

> SimpleDeserializerFactory(org.apache.axis.types.URI.class,
> -                                             Constants.XSD_ANYURI),
> -                   true);
> +                                             Constants.XSD_ANYURI)
> +        );
> 
>           // All array objects automatically get associated with the 
> SOAP_ARRAY.
>           // There is no way to do this with a hash table,
> @@ -537,16 +513,16 @@
>           // as a SOAP_ARRAY
>           myRegister(Constants.SOAP_ARRAY,     
> java.util.Collection.class,
>                      new ArraySerializerFactory(),
> -                   new ArrayDeserializerFactory(),
> -                   false);
> +                   new ArrayDeserializerFactory()
> +        );
>   //        myRegister(Constants.SOAP_ARRAY,     
> java.util.ArrayList.class,
>   //                   new ArraySerializerFactory(),
>   //                   new ArrayDeserializerFactory(),
>   //                   false);
>           myRegister(Constants.SOAP_ARRAY,     Object[].class,
>                      new ArraySerializerFactory(),
> -                   new ArrayDeserializerFactory(),
> -                   false);
> +                   new ArrayDeserializerFactory()
> +        );
> 
>           //
>           // Now register the schema specific types
> @@ -558,22 +534,28 @@
>       }
> 
>       /**
> -     * Construct TypeMapping for all the [xmlType, javaType] 
> for all of the
> -     * known xmlType namespaces.  This is the shotgun 
> approach, which works
> -     * in 99% of the cases.  The other cases that are Schema version 
> specific
> -     * (i.e. timeInstant vs. dateTime) are handled by the 
> SchemaVersion
> -     * Interface registerSchemaSpecificTypes().
> -     *
> -     * @param xmlType is the QName type
> -     * @param javaType is the java type
> -     * @param sf is the ser factory (if null, the simple 
> factory is used)
> -     * @param df is the deser factory (if null, the simple 
> factory is used)
> -     * @param primitive indicates whether serializers can be shared
> -     */
> -    protected void myRegister(QName xmlType, Class javaType,
> -                              SerializerFactory sf, 
> DeserializerFactory df,
> -                              boolean primitive) {
> -        myRegister(xmlType, javaType, sf, df, primitive, false);
> +     * Register a "simple" type mapping - in other words, a
> +     * @param xmlType
> +     * @param javaType
> +     * @param primitive
> +     */
> +    protected void myRegisterSimple(QName xmlType,
> +                                    Class javaType,
> +                                    boolean primitive) {
> +        SerializerFactory sf;
> +        DeserializerFactory df = null;
> +        if (primitive) {
> +            sf = new SimplePrimitiveSerializerFactory(javaType,
> +                                                      xmlType);
> +        } else {
> +            sf = new SimpleNonPrimitiveSerializerFactory(javaType,
> +                                                         xmlType);
> +        }
> +        if (javaType != java.lang.Object.class) {
> +            df = new SimpleDeserializerFactory(javaType, xmlType);
> +        }
> +
> +        myRegister(xmlType, javaType, sf, df);
>       }
> 
>       /**
> @@ -587,32 +569,9 @@
>        * @param javaType is the java type
>        * @param sf is the ser factory (if null, the simple 
> factory is used)
>        * @param df is the deser factory (if null, the simple 
> factory is 
> used)
> -     * @param primitive indicates whether serializers can be shared
> -     * @param onlyDeserFactory indicates if only deserialization is 
> desired.
>        */
>       protected void myRegister(QName xmlType, Class javaType,
> -                              SerializerFactory sf, 
> DeserializerFactory df,
> -                              boolean primitive, boolean 
> onlyDeserFactory) {
> -
> -        // If factories are not specified, use the Simple ser/deser 
> factories.
> -        if (sf == null && df == null) {
> -            if (!onlyDeserFactory) {
> -                if (primitive) {
> -                    sf = new 
> SimplePrimitiveSerializerFactory(javaType,
> -                                                             
>  xmlType);
> -                } else {
> -                    sf = new 
> SimpleNonPrimitiveSerializerFactory(javaType,
> -                                                             
>     xmlType);
> -                }
> -            }
> -            if (javaType != java.lang.Object.class) {
> -                df = new SimpleDeserializerFactory(javaType, 
> xmlType);
> -            }
> -        }
> -        if (onlyDeserFactory) {
> -            sf = null;
> -        }
> -
> +                              SerializerFactory sf, 
> DeserializerFactory 
> df) {
>           // Register all known flavors of the namespace.
>           try {
>               if (xmlType.getNamespaceURI().equals(
> Index: java/src/org/apache/axis/encoding/SerializationContextImpl.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/Serializa
> tionContextImpl.java,v
> retrieving revision 1.73
> retrieving revision 1.75
> diff -u -r1.73 -r1.75
> --- java/src/org/apache/axis/encoding/SerializationContextImpl.java 
> 25 Sep 2002 03:21:08 -0000      1.73
> +++ java/src/org/apache/axis/encoding/SerializationContextImpl.java 
> 25 Sep 2002 18:56:16 -0000      1.75
> @@ -65,6 +65,7 @@
>   import org.apache.axis.soap.SOAPConstants;
>   import org.apache.axis.wsdl.symbolTable.SymbolTable;
>   import org.apache.axis.wsdl.symbolTable.SchemaUtils;
> +import org.apache.axis.encoding.ser.BaseSerializerFactory;
>   import org.apache.axis.enum.Style;
>   import org.apache.axis.handlers.soap.SOAPService;
>   import org.apache.axis.attachments.Attachments;
> @@ -90,6 +91,7 @@
>   import org.xml.sax.helpers.AttributesImpl;
> 
>   import javax.xml.namespace.QName;
> +import javax.xml.rpc.holders.QNameHolder;
>   import javax.xml.rpc.JAXRPCException;
>   import java.io.IOException;
>   import java.io.Writer;
> @@ -845,7 +847,7 @@
>                   forceSer = mri.value;
> 
>                   // Now serialize the value.
> -                // The sendType parameter is set to true for interop 
> purposes.
> +                // The sendType parameter is defaulted for interop 
> purposes.
>                   // Some of the remote services do not know how to
>                   // ascertain the type in these 
> circumstances (though 
> Axis does).
>                   serialize(multirefQName, attrs, mri.value,
> @@ -1199,17 +1201,27 @@
>               }
> 
>               // Try getting a serializer for the prefered xmlType
> -            Serializer ser = getSerializer(javaType, xmlType);
> +            QNameHolder actualXMLType = new QNameHolder();
> +            Serializer ser = getSerializer(javaType, xmlType,
> +                                           actualXMLType);
> 
>               if ( ser != null ) {
> -                // Send the xmlType if indicated.
> -                QName actualType = 
> ((TypeMappingImpl)tm).getXMLType(javaType,
> -                                                             
>   xmlType);
> -
> -                if (shouldSendType || (xmlType != null &&
> -                                        
> (!actualType.equals(xmlType))))
> -                    attributes = 
> setTypeAttribute(attributes, actualType);
> -
> +                // Send the xmlType if indicated or if
> +                // the actual xmlType is different than the
> +                // prefered xmlType
> +                if (shouldSendType ||
> +                    (xmlType != null &&
> +                     (!xmlType.equals(actualXMLType.value)))) {
> +                    attributes = setTypeAttribute(attributes,
> +                                                  
> actualXMLType.value);
> +                }
> +
> +                // -----------------
> +                // NOTE: I have seen doc/lit tests that use
> +                // the type name as the element name in 
> multi-ref cases
> +                // (for example <soapenc:Array ... >)
> +                // In such cases the xsi:type is not passed along.
> +                // -----------------
>                   // The multiref QName is our own fake name.
>                   // It may be beneficial to set the name to the
>                   // type name, but I didn't see any improvements
> @@ -1265,11 +1277,17 @@
>        * Attempts to get a serializer for the indicated javaType and 
> xmlType.
>        * @param javaType is the type of the object
>        * @param xmlType is the preferred qname type.
> +     * @param actualXmlType is set to a QNameHolder or null.
> +     *                     If a QNameHolder, the actual xmlType is 
> returned.
>        * @return found class/serializer or null
>        **/
> -    private Serializer getSerializer(Class javaType, QName xmlType) {
> +    private Serializer getSerializer(Class javaType, QName xmlType,
> +                                     QNameHolder actualXMLType) {
>           SerializerFactory  serFactory  = null ;
>           TypeMapping tm = getTypeMapping();
> +        if (actualXMLType != null) {
> +            actualXMLType.value = null;
> +        }
> 
>           while (javaType != null) {
>               serFactory = (SerializerFactory) 
> tm.getSerializer(javaType, xmlType);
> @@ -1290,13 +1308,28 @@
>           Serializer ser = null;
>           if ( serFactory != null ) {
>               ser = (Serializer) 
> serFactory.getSerializerAs(Constants.AXIS_SAX);
> +
> +            if (actualXMLType != null) {
> +                // Get the actual qname xmlType from the factory.
> +                // If not found via the factory, fall back to a less
> +                // performant solution.
> +                if (serFactory instanceof BaseSerializerFactory) {
> +                    actualXMLType.value =
> +                        ((BaseSerializerFactory) 
> serFactory).getXMLType();
> +                }
> +                if (actualXMLType.value == null) {
> +                    actualXMLType.value =
> +                        ((TypeMappingImpl) tm).getXMLType(javaType,
> +                                                          xmlType);
> +                }
> +            }
>           }
> 
>           return ser;
>       }
> 
>       public String getValueAsString(Object value, QName 
> xmlType) throws 
> IOException {
> -        Serializer ser = getSerializer(value.getClass(), xmlType);
> +        Serializer ser = getSerializer(value.getClass(), 
> xmlType, null);
>           if (!(ser instanceof SimpleValueSerializer)) {
>               throw new IOException(
>                       Messages.getMessage("needSimpleValueSer",
> Index: java/src/org/apache/axis/encoding/TypeMappingImpl.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/TypeMappi
> ngImpl.java,v
> retrieving revision 1.33
> retrieving revision 1.34
> diff -u -r1.33 -r1.34
> --- java/src/org/apache/axis/encoding/TypeMappingImpl.java    
>   18 Sep 
> 2002 16:10:38 -0000      1.33
> +++ java/src/org/apache/axis/encoding/TypeMappingImpl.java    
>   25 Sep 
> 2002 16:29:47 -0000      1.34
> @@ -253,13 +253,6 @@
>                                            "badJavaType" : 
> "badXmlType"));
>           }
> 
> -        // At least a serializer or deserializer factory 
> must be specified.
> -        if (sf == null && dsf == null) {
> -            throw new JAXRPCException(
> -                    Messages.getMessage(sf == null ?
> -                                         "badSerFac" : 
> "badDeserFac"));
> -        }
> -
>           //REMOVED_FOR_TCK
>           //if (sf != null &&
>           //    !(sf instanceof 
> javax.xml.rpc.encoding.SerializerFactory)) {
> @@ -278,8 +271,10 @@
>           if ((sf != null) || (class2Pair.get(javaType) == null))
>               class2Pair.put(javaType, pair);
> 
> -        pair2SF.put(pair, sf);
> -        pair2DF.put(pair, dsf);
> +        if (sf != null)
> +            pair2SF.put(pair, sf);
> +        if (dsf != null)
> +            pair2DF.put(pair, dsf);
>       }
> 
>       /**
> @@ -542,8 +537,8 @@
>       public QName getTypeQName(Class javaType) {
>           //log.debug("getTypeQName javaType =" + javaType);
>           if (javaType == null)
> -        return null;
> -
> +            return null;
> +
>           QName xmlType = null;
>           Pair pair = (Pair) class2Pair.get(javaType);
>           if (pair == null && delegate != null) {
> @@ -574,6 +569,9 @@
>        * @return javaType class or type
>        */
>       public Class getClassForQName(QName xmlType) {
> +        if (xmlType == null)
> +            return null;
> +
>           //log.debug("getClassForQName xmlType =" + xmlType);
>           Class javaType = null;
>           Pair pair = (Pair) qName2Pair.get(xmlType);
> Index: 
> java/src/org/apache/axis/encoding/ser/BaseDeserializerFactory.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/BaseD
> eserializerFactory.java,v
> retrieving revision 1.8
> retrieving revision 1.9
> diff -u -r1.8 -r1.9
> --- 
> java/src/org/apache/axis/encoding/ser/BaseDeserializerFactory.java 
> 17 Sep 2002 22:55:47 -0000      1.8
> +++ 
> java/src/org/apache/axis/encoding/ser/BaseDeserializerFactory.java 
> 25 Sep 2002 19:26:31 -0000      1.9
> @@ -165,8 +165,11 @@
>        */
>       protected Deserializer getSpecialized(String mechanismType) {
>           if (javaType != null && xmlType != null) {
> -            if (getDeserializer == null) {
> -                getDeserializer = getDeserializerMethod(javaType);
> +            // Ensure that getDeserializerMethod is called only once.
> +            synchronized (this) {
> +                if (getDeserializer == null) {
> +                    getDeserializer = 
> getDeserializerMethod(javaType);
> +                }
>               }
>               if (getDeserializer != null) {
>                   try {
> Index: 
> java/src/org/apache/axis/encoding/ser/BaseSerializerFactory.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/BaseS
> erializerFactory.java,v
> retrieving revision 1.15
> retrieving revision 1.17
> diff -u -r1.15 -r1.17
> --- java/src/org/apache/axis/encoding/ser/BaseSerializerFactory.java 
> 18 Sep 2002 16:10:35 -0000      1.15
> +++ java/src/org/apache/axis/encoding/ser/BaseSerializerFactory.java 
> 25 Sep 2002 19:26:31 -0000      1.17
> @@ -190,8 +190,11 @@
>        */
>       protected Serializer getSpecialized(String mechanismType) {
>           if (javaType != null && xmlType != null) {
> -            if (getSerializer == null) {
> -                getSerializer = getSerializerMethod(javaType);
> +            // Ensure that getSerializerMethod is called only once.
> +            synchronized (this) {
> +                if (getSerializer == null) {
> +                    getSerializer = getSerializerMethod(javaType);
> +                }
>               }
>               if (getSerializer != null) {
>                   try {
> @@ -250,7 +253,23 @@
>           }
>           return mechanisms.iterator();
>       }
> +
> +    /**
> +     * get xmlType
> +     * @return xmlType QName for this factory
> +     */
> +    public QName getXMLType() {
> +        return xmlType;
> +    }
> 
> +    /**
> +     * get javaType
> +     * @return javaType Class for this factory
> +     */
> +    public Class getJavaType() {
> +        return javaType;
> +    }
> +
>       /**
>        * Utility method that intospects on a factory class to 
> decide how to
>        * create the factory.  Tries in the following order:
> Index: java/src/org/apache/axis/i18n/resource.properties
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
> retrieving revision 1.6
> retrieving revision 1.8
> diff -u -r1.6 -r1.8
> --- java/src/org/apache/axis/i18n/resource.properties   24 Sep 2002 
> 20:45:20 -0000      1.6
> +++ java/src/org/apache/axis/i18n/resource.properties   25 Sep 2002 
> 16:54:24 -0000      1.8
> @@ -1029,3 +1029,5 @@
>   badMsgMethodParams=Method ''{0}'' does not match any of the valid 
> signatures for message-style service methods
> 
>   unmatchedOp=Binding operation has no corresponding portType 
> operation: 
>   name = {0}, input name = {1}, output name = {2}
> +noOperationForQName=Couldn't find an appropriate operation for XML 
> QName {0}
> +noParmDesc=operation description is missing parameter description!
> Index: java/src/org/apache/axis/message/MessageElement.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageEle
> ment.java,v
> retrieving revision 1.128
> retrieving revision 1.129
> diff -u -r1.128 -r1.129
> --- java/src/org/apache/axis/message/MessageElement.java      
>   18 Sep 
> 2002 16:10:28 -0000      1.128
> +++ java/src/org/apache/axis/message/MessageElement.java      
>   25 Sep 
> 2002 16:54:24 -0000      1.129
> @@ -312,6 +312,12 @@
> 
>       public String getName() { return( name ); }
>       public void setName(String name) { this.name = name; }
> +
> +    public QName getQName() { return new QName(namespaceURI, name); }
> +    public void setQName(QName qName) {
> +        this.name = qName.getLocalPart();
> +        this.namespaceURI = qName.getNamespaceURI();
> +    }
> 
>       public String getPrefix() { return( prefix ); }
>       public void setPrefix(String prefix) { this.prefix = prefix; }
> Index: java/src/org/apache/axis/message/RPCHandler.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCHandler.java,v
> retrieving revision 1.64
> retrieving revision 1.65
> diff -u -r1.64 -r1.65
> --- java/src/org/apache/axis/message/RPCHandler.java    18 Sep 2002 
> 16:10:28 -0000      1.64
> +++ java/src/org/apache/axis/message/RPCHandler.java    25 Sep 2002 
> 16:35:33 -0000      1.65
> @@ -213,12 +213,17 @@
>               //         by position if we've already looked 
> something up
>               //         by name?  I think so...
>               if (paramDesc == null) {
> -                paramDesc = 
> operation.getParameter(params.size() - 1);
> +                if (isResponse) {
> +                    paramDesc = operation.getReturnParamDesc();
> +                }
> +                else {
> +                    paramDesc = 
> operation.getParameter(params.size() - 1);
> +                }
>               }
> 
> 
>               if (paramDesc == null) {
> -                throw new SAXException("operation description is 
> missing parameter description!");
> +                throw new 
> SAXException(Messages.getMessage("noParmDesc"));
>               }
>               destClass = paramDesc.getJavaType();
> 
> Index: java/src/org/apache/axis/providers/java/MsgProvider.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/providers/java/Msg
> Provider.java,v
> retrieving revision 1.33
> retrieving revision 1.34
> diff -u -r1.33 -r1.34
> --- java/src/org/apache/axis/providers/java/MsgProvider.java  
>   24 Sep 
> 2002 21:02:23 -0000      1.33
> +++ java/src/org/apache/axis/providers/java/MsgProvider.java  
>   25 Sep 
> 2002 16:54:24 -0000      1.34
> @@ -104,6 +104,12 @@
>           throws Exception
>       {
>           OperationDesc operation = msgContext.getOperation();
> +        if (operation == null) {
> +            throw new 
> AxisFault(Messages.getMessage("noOperationForQName",
> +                                                    
> reqEnv.getFirstBody().
> + 
> getQName().toString()));
> +        }
> +
>           Method method = operation.getMethod();
> 
>           int methodType = operation.getMessageOperationStyle();
> Index: java/src/org/apache/axis/transport/http/AxisServlet.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/transport/http/Axi
> sServlet.java,v
> retrieving revision 1.143
> retrieving revision 1.144
> diff -u -r1.143 -r1.144
> --- java/src/org/apache/axis/transport/http/AxisServlet.java  
>   18 Sep 
> 2002 16:10:30 -0000      1.143
> +++ java/src/org/apache/axis/transport/http/AxisServlet.java  
>   25 Sep 
> 2002 18:21:28 -0000      1.144
> @@ -619,6 +619,7 @@
>           }
> 
>           Message responseMsg = null;
> +        String  contentType = null;
> 
>           try {
>               AxisEngine engine = getEngine();
> @@ -694,6 +695,7 @@
>                   }
> 
>                   responseMsg = msgContext.getResponseMessage();
> +                contentType = 
> responseMsg.getContentType(msgContext.getSOAPConstants());
>               } catch (AxisFault e) {
>                   log.error(Messages.getMessage("exception00"), e);
>                   // It's been suggested that a lack of SOAPAction
> @@ -704,14 +706,17 @@
>                     // TODO: less generic realm choice?
>                   res.setStatus(status);
>                   responseMsg = new Message(e);
> +                contentType = 
> responseMsg.getContentType(msgContext.getSOAPConstants());
>               } catch (Exception e) {
>                   log.error(Messages.getMessage("exception00"), e);
>  
> res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
>                   responseMsg = new Message(AxisFault.makeFault(e));
> +                contentType = 
> responseMsg.getContentType(msgContext.getSOAPConstants());
>               }
>           } catch (AxisFault fault) {
>               log.error(Messages.getMessage("axisFault00"), fault);
>               responseMsg = new Message(fault);
> +            contentType = 
> responseMsg.getContentType(msgContext.getSOAPConstants());
>           }
>           if( tlog.isDebugEnabled() ) {
>               t3=System.currentTimeMillis();
> @@ -720,7 +725,7 @@
>           /* Send response back along the wire...  */
>           /***********************************/
>           if (responseMsg != null)
> -            sendResponse(getProtocolVersion(req), 
> msgContext.getSOAPConstants(),
> +            sendResponse(getProtocolVersion(req), contentType,
>                            res, responseMsg);
> 
>           if (isDebug) {
> @@ -767,7 +772,7 @@
>        * @throws IOException if the response stream can not 
> be written to
>        */
>       private void sendResponse(final String clientVersion,
> -            SOAPConstants soapConstants,
> +            String contentType,
>               HttpServletResponse res, Message responseMsg)
>           throws AxisFault, IOException
>       {
> @@ -780,13 +785,13 @@
>           } else {
>               if(isDebug) {
>                   log.debug("Returned Content-Type:" +
> -                    responseMsg.getContentType(soapConstants));
> +                    contentType);
>                   // log.debug("Returned Content-Length:" +
>                   //          responseMsg.getContentLength());
>               }
> 
>               try {
> - 
> res.setContentType(responseMsg.getContentType(soapConstants));
> +                res.setContentType(contentType);
> 
>                   /* My understand of Content-Length
>                    * HTTP 1.0
> Index: java/src/org/apache/axis/wsdl/fromJava/Types.java
> ===================================================================
> RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Types.java,v
> retrieving revision 1.58
> retrieving revision 1.59
> diff -u -r1.58 -r1.59
> --- java/src/org/apache/axis/wsdl/fromJava/Types.java   19 Sep 2002 
> 20:45:54 -0000      1.58
> +++ java/src/org/apache/axis/wsdl/fromJava/Types.java   25 Sep 2002 
> 18:56:16 -0000      1.59
> @@ -953,7 +953,7 @@
>               javaType.isPrimitive()) {
>               if (issueErrors &&
>                   !beanCompatErrs.contains(javaType)) {
> -                log.error(Messages.getMessage("beanCompatType00",
> +                log.warn(Messages.getMessage("beanCompatType00",
>                                                  javaType.getName()));
>                   beanCompatErrs.add(javaType);
>               }
> @@ -966,7 +966,7 @@
>               javaType.getName().startsWith("javax.")) {
>               if (issueErrors &&
>                   !beanCompatErrs.contains(javaType)) {
> -                log.error(Messages.getMessage("beanCompatPkg00",
> +                log.warn(Messages.getMessage("beanCompatPkg00",
>                                                  javaType.getName()));
>                   beanCompatErrs.add(javaType);
>               }
> @@ -986,7 +986,7 @@
>               } catch (java.lang.NoSuchMethodException e) {
>                   if (issueErrors &&
>                       !beanCompatErrs.contains(javaType)) {
> - 
> log.error(Messages.getMessage("beanCompatConstructor00",
> +                    
> log.warn(Messages.getMessage("beanCompatConstructor00",
>                                                      
> javaType.getName()));
>                       beanCompatErrs.add(javaType);
>                   }
> @@ -1009,7 +1009,7 @@
> 
>                   if (issueErrors &&
>                       !beanCompatErrs.contains(javaType)) {
> -                    
> log.error(Messages.getMessage("beanCompatExtends00",
> +                    
> log.warn(Messages.getMessage("beanCompatExtends00",
>                                                      
> javaType.getName(),
>                                                      
> superClass.getName(),
>                                                       
> javaType.getName()));
> Index: java/test/wsdl/oneway/build.xml
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/test/wsdl/oneway/build.xml,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- java/test/wsdl/oneway/build.xml     16 Sep 2002 15:55:56 
> -0000      1.1
> +++ java/test/wsdl/oneway/build.xml     25 Sep 2002 16:45:24 
> -0000      1.2
> @@ -51,7 +51,7 @@
>   <target name="copy" depends="setenv"/>
> 
>   <target name="compile" depends="copy">
> -  <echo message="Compilibg test.wsdl.oneway"/>
> +  <echo message="Compiling test.wsdl.oneway"/>
>       <!-- Oneway Test -->
>       <!-- Generate Java From WSDL -->
>       <wsdl2java url="${axis.home}/test/wsdl/oneway/oneway.wsdl"
> Index: java/test/wsdl/sequence/build.xml
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/test/wsdl/sequence/build.xml,v
> retrieving revision 1.7
> retrieving revision 1.8
> diff -u -r1.7 -r1.8
> --- java/test/wsdl/sequence/build.xml   10 Sep 2002 16:06:55 
> -0000      1.7
> +++ java/test/wsdl/sequence/build.xml   25 Sep 2002 16:45:24 
> -0000      1.8
> @@ -51,7 +51,7 @@
>   <target name="copy" depends="setenv"/>
> 
>   <target name="compile" depends="copy">
> -  <echo message="Compilibg test.wsdl.sequence"/>
> +  <echo message="Compiling test.wsdl.sequence"/>
>       <!-- Sequence Test -->
>       <!-- Generate Java From WSDL -->
>       <wsdl2java 
> url="${axis.home}/test/wsdl/sequence/SequenceTest.wsdl"
>