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;
}
}