You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/04/26 23:06:37 UTC

cvs commit: ws-axis/java/src/org/apache/axis/encoding/ser SimpleDeserializerFactory.java SimpleSerializer.java SimpleSerializerFactory.java

dims        2005/04/26 14:06:37

  Modified:    java/src/org/apache/axis/utils JavaUtils.java
               java/src/org/apache/axis/encoding/ser
                        SimpleDeserializerFactory.java
                        SimpleSerializer.java SimpleSerializerFactory.java
  Log:
  Fix for AXIS-1910 - CLONE -axis serializes unwanted attributes (e.g. lowestSetBit of java.math.BigInteger)
  
  Revision  Changes    Path
  1.118     +44 -0     ws-axis/java/src/org/apache/axis/utils/JavaUtils.java
  
  Index: JavaUtils.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/utils/JavaUtils.java,v
  retrieving revision 1.117
  retrieving revision 1.118
  diff -u -r1.117 -r1.118
  --- JavaUtils.java	23 Mar 2005 02:22:41 -0000	1.117
  +++ JavaUtils.java	26 Apr 2005 21:06:36 -0000	1.118
  @@ -140,6 +140,50 @@
           return null;
       }
   
  +    /*
  +         * Any builtin type that has a constructor that takes a String is a basic
  +         * type.
  +         * This is for optimization purposes, so that we don't introspect
  +         * primitive java types or some basic Axis types.
  +         */
  +    public static boolean isBasic(Class javaType) {
  +        return (javaType.isPrimitive() ||
  +                javaType == String.class ||
  +                javaType == Boolean.class ||
  +                javaType == Float.class ||
  +                javaType == Double.class ||
  +                Number.class.isAssignableFrom(javaType) ||
  +                javaType == org.apache.axis.types.Day.class ||
  +                javaType == org.apache.axis.types.Duration.class ||
  +                javaType == org.apache.axis.types.Entities.class ||
  +                javaType == org.apache.axis.types.Entity.class ||
  +                javaType == HexBinary.class ||
  +                javaType == org.apache.axis.types.Id.class ||
  +                javaType == org.apache.axis.types.IDRef.class ||
  +                javaType == org.apache.axis.types.IDRefs.class ||
  +                javaType == org.apache.axis.types.Language.class ||
  +                javaType == org.apache.axis.types.Month.class ||
  +                javaType == org.apache.axis.types.MonthDay.class ||
  +                javaType == org.apache.axis.types.Name.class ||
  +                javaType == org.apache.axis.types.NCName.class ||
  +                javaType == org.apache.axis.types.NegativeInteger.class ||
  +                javaType == org.apache.axis.types.NMToken.class ||
  +                javaType == org.apache.axis.types.NMTokens.class ||
  +                javaType == org.apache.axis.types.NonNegativeInteger.class ||
  +                javaType == org.apache.axis.types.NonPositiveInteger.class ||
  +                javaType == org.apache.axis.types.NormalizedString.class ||
  +                javaType == org.apache.axis.types.PositiveInteger.class ||
  +                javaType == org.apache.axis.types.Time.class ||
  +                javaType == org.apache.axis.types.Token.class ||
  +                javaType == org.apache.axis.types.UnsignedByte.class ||
  +                javaType == org.apache.axis.types.UnsignedInt.class ||
  +                javaType == org.apache.axis.types.UnsignedLong.class ||
  +                javaType == org.apache.axis.types.UnsignedShort.class ||
  +                javaType == org.apache.axis.types.URI.class ||
  +                javaType == org.apache.axis.types.Year.class ||
  +                javaType == org.apache.axis.types.YearMonth.class);
  +    }
  +
       /**
        * It the argument to the convert(...) method implements
        * the ConvertCache interface, the convert(...) method
  
  
  
  1.18      +2 -44     ws-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializerFactory.java
  
  Index: SimpleDeserializerFactory.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializerFactory.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- SimpleDeserializerFactory.java	15 Mar 2005 13:33:45 -0000	1.17
  +++ SimpleDeserializerFactory.java	26 Apr 2005 21:06:36 -0000	1.18
  @@ -18,6 +18,7 @@
   
   import org.apache.axis.utils.BeanUtils;
   import org.apache.axis.utils.BeanPropertyDescriptor;
  +import org.apache.axis.utils.JavaUtils;
   
   import javax.xml.namespace.QName;
   import javax.xml.rpc.JAXRPCException;
  @@ -49,7 +50,7 @@
        **/
       public SimpleDeserializerFactory(Class javaType, QName xmlType) {
           super(SimpleDeserializer.class, xmlType, javaType);
  -        this.isBasicType = isBasic(javaType);
  +        this.isBasicType = JavaUtils.isBasic(javaType);
           initConstructor(javaType);
       }
   
  @@ -82,49 +83,6 @@
           }
       }
   
  -    /*
  -     * Any builtin type that has a constructor that takes a String is a basic
  -     * type.
  -     * This is for optimization purposes, so that we don't introspect
  -     * primitive java types or some basic Axis types.
  -     */
  -    public static boolean isBasic(Class javaType) {
  -        return (javaType.isPrimitive() ||
  -                javaType == java.lang.String.class ||
  -                javaType == java.lang.Boolean.class ||
  -                javaType == java.lang.Float.class ||
  -                javaType == java.lang.Double.class ||
  -                javaType == org.apache.axis.types.Day.class ||
  -                javaType == org.apache.axis.types.Duration.class ||
  -                javaType == org.apache.axis.types.Entities.class ||
  -                javaType == org.apache.axis.types.Entity.class ||
  -                javaType == org.apache.axis.types.HexBinary.class ||
  -                javaType == org.apache.axis.types.Id.class ||
  -                javaType == org.apache.axis.types.IDRef.class ||
  -                javaType == org.apache.axis.types.IDRefs.class ||
  -                javaType == org.apache.axis.types.Language.class ||
  -                javaType == org.apache.axis.types.Month.class ||
  -                javaType == org.apache.axis.types.MonthDay.class ||
  -                javaType == org.apache.axis.types.Name.class ||
  -                javaType == org.apache.axis.types.NCName.class ||
  -                javaType == org.apache.axis.types.NegativeInteger.class ||
  -                javaType == org.apache.axis.types.NMToken.class ||
  -                javaType == org.apache.axis.types.NMTokens.class ||
  -                javaType == org.apache.axis.types.NonNegativeInteger.class ||
  -                javaType == org.apache.axis.types.NonPositiveInteger.class ||
  -                javaType == org.apache.axis.types.NormalizedString.class ||
  -                javaType == org.apache.axis.types.PositiveInteger.class ||
  -                javaType == org.apache.axis.types.Time.class ||
  -                javaType == org.apache.axis.types.Token.class ||
  -                javaType == org.apache.axis.types.UnsignedByte.class ||
  -                javaType == org.apache.axis.types.UnsignedInt.class ||
  -                javaType == org.apache.axis.types.UnsignedLong.class ||
  -                javaType == org.apache.axis.types.UnsignedShort.class ||
  -                javaType == org.apache.axis.types.URI.class ||
  -                javaType == org.apache.axis.types.Year.class ||
  -                javaType == org.apache.axis.types.YearMonth.class);
  -    }
  -
       /**
        * Get the Deserializer and the set the Constructor so the
        * deserializer does not have to do introspection.
  
  
  
  1.39      +2 -1      ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializer.java
  
  Index: SimpleSerializer.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializer.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- SimpleSerializer.java	7 Feb 2005 07:54:04 -0000	1.38
  +++ SimpleSerializer.java	26 Apr 2005 21:06:36 -0000	1.39
  @@ -26,6 +26,7 @@
   import org.apache.axis.utils.BeanPropertyDescriptor;
   import org.apache.axis.utils.BeanUtils;
   import org.apache.axis.utils.Messages;
  +import org.apache.axis.utils.JavaUtils;
   import org.apache.axis.wsdl.fromJava.Types;
   import org.w3c.dom.Element;
   import org.xml.sax.Attributes;
  @@ -71,7 +72,7 @@
           // generate a fresh one.
           if (typeDesc != null) {
               propertyDescriptor = typeDesc.getPropertyDescriptors();
  -        } else if (!SimpleDeserializerFactory.isBasic(javaType)) {
  +        } else if (!JavaUtils.isBasic(javaType)) {
               propertyDescriptor = BeanUtils.getPd(javaType, null);
           }
       }
  
  
  
  1.5       +3 -13     ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializerFactory.java
  
  Index: SimpleSerializerFactory.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializerFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SimpleSerializerFactory.java	18 Nov 2004 23:39:18 -0000	1.4
  +++ SimpleSerializerFactory.java	26 Apr 2005 21:06:36 -0000	1.5
  @@ -19,6 +19,8 @@
    */
   package org.apache.axis.encoding.ser;
   
  +import org.apache.axis.utils.JavaUtils;
  +
   import javax.xml.namespace.QName;
   import javax.xml.rpc.JAXRPCException;
   
  @@ -32,19 +34,7 @@
        **/
       public SimpleSerializerFactory(Class javaType, QName xmlType) {
           super(SimpleSerializer.class, xmlType, javaType);
  -        this.isBasicType = isBasic(javaType);
  -    }
  -
  -    /*
  -     * Any builtin type that has a constructor that takes a String is a basic
  -     * type.
  -     * This is for optimization purposes, so that we don't introspect
  -     * primitive java types or some basic Axis types.
  -     */
  -    private static boolean isBasic(Class javaType) {
  -        return (javaType.isPrimitive() || 
  -                javaType == java.lang.String.class ||
  -                javaType == org.apache.axis.types.URI.class);
  +        this.isBasicType = JavaUtils.isBasic(javaType);
       }
   
       public javax.xml.rpc.encoding.Serializer getSerializerAs(String mechanismType) throws JAXRPCException {