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 to...@apache.org on 2002/10/02 16:53:57 UTC

cvs commit: xml-axis/java/src/org/apache/axis/message SOAPFaultBuilder.java

tomj        2002/10/02 07:53:56

  Modified:    java/src/org/apache/axis/message Tag: interop4
                        SOAPFaultBuilder.java
  Log:
  Lookup wrapper types and convert them to their base type when passing them
  in to the Exception constructor.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.23.8.2  +30 -3     xml-axis/java/src/org/apache/axis/message/SOAPFaultBuilder.java
  
  Index: SOAPFaultBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPFaultBuilder.java,v
  retrieving revision 1.23.8.1
  retrieving revision 1.23.8.2
  diff -u -r1.23.8.1 -r1.23.8.2
  --- SOAPFaultBuilder.java	1 Oct 2002 20:38:52 -0000	1.23.8.1
  +++ SOAPFaultBuilder.java	2 Oct 2002 14:53:56 -0000	1.23.8.2
  @@ -139,11 +139,12 @@
                           // This is our exception class
                           f = (AxisFault) faultData;
                       } else {
  -                        // We need to create the exception, passing the data
  -                        // to the constructor
  +                        // We need to create the exception, 
  +                        // passing the data to the constructor.
  +                        Class argClass = ConvertWrapper(faultData.getClass());
                           Constructor con = 
                                   faultClass.getConstructor(
  -                                        new Class[] { faultData.getClass() });
  +                                        new Class[] { argClass });
                           f = (AxisFault) con.newInstance(new Object[] { faultData });
                       }
                   }
  @@ -248,5 +249,31 @@
               faultActor = (String) value;
           }
           
  +    }
  +
  +    /**
  +     * A simple map of holder objects and their primitive types 
  +     */
  +    private static HashMap TYPES = new HashMap(7);
  +
  +    static {
  +        TYPES.put(java.lang.Integer.class, int.class);
  +        TYPES.put(java.lang.Float.class, float.class);
  +        TYPES.put(java.lang.Boolean.class, boolean.class);
  +        TYPES.put(java.lang.Double.class, double.class);
  +        TYPES.put(java.lang.Byte.class, byte.class);
  +        TYPES.put(java.lang.Short.class, short.class);
  +        TYPES.put(java.lang.Long.class, long.class);
  +    }
  +    
  +    /**
  +     * Internal method to convert wrapper classes to their base class
  +     */ 
  +    private Class ConvertWrapper(Class cls) {
  +        Class ret = (Class) TYPES.get(cls);
  +        if (ret != null) {
  +            return ret;
  +        }
  +        return cls;
       }
   }