+1 for both.

Glyn


                                                                                       
                                               
                      Glen Daniels                                                     
                                               
                      <gdaniels@macrome        To:       "'[EMAIL PROTECTED]'" 
<[EMAIL PROTECTED]>                        
                      dia.com>                 cc:                                     
                                               
                                               Subject:  RE: [VOTE] incorporate the 
following fixes in to the 1_0 branch a       nd   
                      25/09/02 20:50            into rc2                               
                                               
                      Please respond to                                                
                                               
                      axis-dev                                                         
                                               
                                                                                       
                                               
                                                                                       
                                               




+1 for both, these fixes are all good.

> -----Original Message-----
> From: Sam Ruby [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, September 25, 2002 3:46 PM
> To: [EMAIL PROTECTED]
> 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"
>




Reply via email to