rubys       2002/09/25 13:03:09

  Modified:    java     Tag: axis1_0 axis.properties build.xml
               java/src/org/apache/axis/deployment/wsdd Tag: axis1_0
                        WSDDDeployment.java
               java/src/org/apache/axis/description Tag: axis1_0
                        ServiceDesc.java
               java/src/org/apache/axis/encoding Tag: axis1_0
                        DefaultSOAP12TypeMappingImpl.java
                        DefaultTypeMappingImpl.java
                        SerializationContextImpl.java TypeMappingImpl.java
               java/src/org/apache/axis/encoding/ser Tag: axis1_0
                        BaseDeserializerFactory.java
                        BaseSerializerFactory.java
               java/src/org/apache/axis/i18n Tag: axis1_0
                        resource.properties
               java/src/org/apache/axis/message Tag: axis1_0
                        MessageElement.java RPCHandler.java
               java/src/org/apache/axis/providers/java Tag: axis1_0
                        MsgProvider.java
               java/src/org/apache/axis/transport/http Tag: axis1_0
                        AxisServlet.java
               java/src/org/apache/axis/wsdl/fromJava Tag: axis1_0
                        Types.java
               java/test/wsdl/oneway Tag: axis1_0 build.xml
               java/test/wsdl/sequence Tag: axis1_0 build.xml
  Added:       java/test/badWSDL Tag: axis1_0 PackageTests.java README
                        WSDL2JavaFailuresTestCase.java build.xml
                        mismatchedOperation.wsdl
  Log:
  (hopefully final) resynch for rc2
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.9.4.1   +1 -1      xml-axis/java/axis.properties
  
  Index: axis.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/axis.properties,v
  retrieving revision 1.9
  retrieving revision 1.9.4.1
  diff -u -r1.9 -r1.9.4.1
  --- axis.properties   30 Aug 2002 19:34:26 -0000      1.9
  +++ axis.properties   25 Sep 2002 20:03:06 -0000      1.9.4.1
  @@ -1,4 +1,4 @@
  -axis.version=beta 4
  +axis.version=1.0rc2
   
   name=axis
   Name=Axis
  
  
  
  1.196.2.1 +1 -1      xml-axis/java/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/build.xml,v
  retrieving revision 1.196
  retrieving revision 1.196.2.1
  diff -u -r1.196 -r1.196.2.1
  --- build.xml 24 Sep 2002 23:47:01 -0000      1.196
  +++ build.xml 25 Sep 2002 20:03:06 -0000      1.196.2.1
  @@ -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>
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.49.2.1  +1 -4      
xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java
  
  Index: 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.49.2.1
  diff -u -r1.49 -r1.49.2.1
  --- WSDDDeployment.java       25 Sep 2002 00:55:08 -0000      1.49
  +++ WSDDDeployment.java       25 Sep 2002 20:03:06 -0000      1.49.2.1
  @@ -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();
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.60.2.1  +3 -1      xml-axis/java/src/org/apache/axis/description/ServiceDesc.java
  
  Index: ServiceDesc.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/ServiceDesc.java,v
  retrieving revision 1.60
  retrieving revision 1.60.2.1
  diff -u -r1.60 -r1.60.2.1
  --- ServiceDesc.java  24 Sep 2002 21:02:23 -0000      1.60
  +++ ServiceDesc.java  25 Sep 2002 20:03:06 -0000      1.60.2.1
  @@ -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());
               }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.10.1  +15 -22    
xml-axis/java/src/org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.java
  
  Index: DefaultSOAP12TypeMappingImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.4.10.1
  diff -u -r1.4 -r1.4.10.1
  --- DefaultSOAP12TypeMappingImpl.java 22 May 2002 18:59:15 -0000      1.4
  +++ DefaultSOAP12TypeMappingImpl.java 25 Sep 2002 20:03:07 -0000      1.4.10.1
  @@ -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)
  +        );
       }
   }
  
  
  
  1.55.4.1  +128 -169  
xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
  
  Index: DefaultTypeMappingImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
  retrieving revision 1.55
  retrieving revision 1.55.4.1
  diff -u -r1.55 -r1.55.4.1
  --- DefaultTypeMappingImpl.java       18 Sep 2002 16:10:37 -0000      1.55
  +++ DefaultTypeMappingImpl.java       25 Sep 2002 20:03:07 -0000      1.55.4.1
  @@ -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(
  
  
  
  1.73.2.1  +45 -12    
xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
  
  Index: SerializationContextImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
  retrieving revision 1.73
  retrieving revision 1.73.2.1
  diff -u -r1.73 -r1.73.2.1
  --- SerializationContextImpl.java     25 Sep 2002 03:21:08 -0000      1.73
  +++ SerializationContextImpl.java     25 Sep 2002 20:03:07 -0000      1.73.2.1
  @@ -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",
  
  
  
  1.33.4.1  +9 -11     xml-axis/java/src/org/apache/axis/encoding/TypeMappingImpl.java
  
  Index: TypeMappingImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/TypeMappingImpl.java,v
  retrieving revision 1.33
  retrieving revision 1.33.4.1
  diff -u -r1.33 -r1.33.4.1
  --- TypeMappingImpl.java      18 Sep 2002 16:10:38 -0000      1.33
  +++ TypeMappingImpl.java      25 Sep 2002 20:03:07 -0000      1.33.4.1
  @@ -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);
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.8.4.1   +5 -2      
xml-axis/java/src/org/apache/axis/encoding/ser/BaseDeserializerFactory.java
  
  Index: 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.8.4.1
  diff -u -r1.8 -r1.8.4.1
  --- BaseDeserializerFactory.java      17 Sep 2002 22:55:47 -0000      1.8
  +++ BaseDeserializerFactory.java      25 Sep 2002 20:03:07 -0000      1.8.4.1
  @@ -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 {
  
  
  
  1.15.4.1  +21 -2     
xml-axis/java/src/org/apache/axis/encoding/ser/BaseSerializerFactory.java
  
  Index: 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.15.4.1
  diff -u -r1.15 -r1.15.4.1
  --- BaseSerializerFactory.java        18 Sep 2002 16:10:35 -0000      1.15
  +++ BaseSerializerFactory.java        25 Sep 2002 20:03:07 -0000      1.15.4.1
  @@ -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:
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.1   +2 -0      xml-axis/java/src/org/apache/axis/i18n/resource.properties
  
  Index: resource.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- resource.properties       24 Sep 2002 20:45:20 -0000      1.6
  +++ resource.properties       25 Sep 2002 20:03:07 -0000      1.6.2.1
  @@ -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!
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.128.4.1 +6 -0      xml-axis/java/src/org/apache/axis/message/MessageElement.java
  
  Index: MessageElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
  retrieving revision 1.128
  retrieving revision 1.128.4.1
  diff -u -r1.128 -r1.128.4.1
  --- MessageElement.java       18 Sep 2002 16:10:28 -0000      1.128
  +++ MessageElement.java       25 Sep 2002 20:03:07 -0000      1.128.4.1
  @@ -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; }
  
  
  
  1.64.4.1  +7 -2      xml-axis/java/src/org/apache/axis/message/RPCHandler.java
  
  Index: RPCHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCHandler.java,v
  retrieving revision 1.64
  retrieving revision 1.64.4.1
  diff -u -r1.64 -r1.64.4.1
  --- RPCHandler.java   18 Sep 2002 16:10:28 -0000      1.64
  +++ RPCHandler.java   25 Sep 2002 20:03:07 -0000      1.64.4.1
  @@ -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();
               
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.33.2.1  +6 -0      
xml-axis/java/src/org/apache/axis/providers/java/MsgProvider.java
  
  Index: 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.33.2.1
  diff -u -r1.33 -r1.33.2.1
  --- MsgProvider.java  24 Sep 2002 21:02:23 -0000      1.33
  +++ MsgProvider.java  25 Sep 2002 20:03:08 -0000      1.33.2.1
  @@ -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();
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.143.4.1 +9 -4      
xml-axis/java/src/org/apache/axis/transport/http/AxisServlet.java
  
  Index: 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.143.4.1
  diff -u -r1.143 -r1.143.4.1
  --- AxisServlet.java  18 Sep 2002 16:10:30 -0000      1.143
  +++ AxisServlet.java  25 Sep 2002 20:03:08 -0000      1.143.4.1
  @@ -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
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.58.4.1  +4 -4      xml-axis/java/src/org/apache/axis/wsdl/fromJava/Types.java
  
  Index: 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.58.4.1
  diff -u -r1.58 -r1.58.4.1
  --- Types.java        19 Sep 2002 20:45:54 -0000      1.58
  +++ Types.java        25 Sep 2002 20:03:08 -0000      1.58.4.1
  @@ -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()));
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +0 -0      xml-axis/java/test/badWSDL/PackageTests.java
  
  Index: PackageTests.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/badWSDL/PackageTests.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  
  
  
  1.1.2.1   +0 -0      xml-axis/java/test/badWSDL/README
  
  Index: README
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/badWSDL/README,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  
  
  
  1.1.2.1   +0 -0      xml-axis/java/test/badWSDL/WSDL2JavaFailuresTestCase.java
  
  Index: WSDL2JavaFailuresTestCase.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/badWSDL/WSDL2JavaFailuresTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  
  
  
  1.1.2.1   +0 -0      xml-axis/java/test/badWSDL/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/badWSDL/build.xml,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  
  
  
  1.1.2.1   +0 -0      xml-axis/java/test/badWSDL/mismatchedOperation.wsdl
  
  Index: mismatchedOperation.wsdl
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/badWSDL/mismatchedOperation.wsdl,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.4.1   +1 -1      xml-axis/java/test/wsdl/oneway/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/oneway/build.xml,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- build.xml 16 Sep 2002 15:55:56 -0000      1.1
  +++ build.xml 25 Sep 2002 20:03:08 -0000      1.1.4.1
  @@ -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"
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.7.4.1   +1 -1      xml-axis/java/test/wsdl/sequence/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/sequence/build.xml,v
  retrieving revision 1.7
  retrieving revision 1.7.4.1
  diff -u -r1.7 -r1.7.4.1
  --- build.xml 10 Sep 2002 16:06:55 -0000      1.7
  +++ build.xml 25 Sep 2002 20:03:09 -0000      1.7.4.1
  @@ -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