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 R J Scheuerle Jr <sc...@us.ibm.com> on 2002/09/25 22:01:55 UTC

Re: [VOTE] incorporate the following fixes in to the 1_0 branch and into rc2

+1 to these changes...but we have another small change that we will be
making in the next hour or so.

Rich Scheuerle
IBM WebSphere & Axis Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                                                    
                      Sam Ruby                                                                                      
                      <rubys@apache.org        To:       axis-dev@xml.apache.org                                    
                      >                        cc:                                                                  
                                               Subject:  [VOTE] incorporate the following fixes in to the 1_0       
                      09/25/2002 02:45          branch and into rc2                                                 
                      PM                                                                                            
                      Please respond to                                                                             
                      axis-dev                                                                                      
                                                                                                                    
                                                                                                                    



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/WSDDDeployment.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/ServiceDesc.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/DefaultSOAP12TypeMappingImpl.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/DefaultTypeMappingImpl.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.YearMonth.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.NormalizedString.class,


Constants.XSD_NORMALIZEDSTRING),
                     new
SimpleDeserializerFactory(org.apache.axis.types.NormalizedString.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.UnsignedLong.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.UnsignedInt.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.UnsignedShort.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.UnsignedByte.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.NonNegativeInteger.class,


Constants.XSD_NONNEGATIVEINTEGER),
               new
SimpleDeserializerFactory(org.apache.axis.types.NonNegativeInteger.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.NegativeInteger.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.PositiveInteger.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.NonPositiveInteger.class,


Constants.XSD_NONPOSITIVEINTEGER),
               new
SimpleDeserializerFactory(org.apache.axis.types.NonPositiveInteger.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/SerializationContextImpl.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/TypeMappingImpl.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/BaseDeserializerFactory.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/BaseSerializerFactory.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/MessageElement.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/MsgProvider.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/AxisServlet.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"