You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2013/02/03 13:35:09 UTC
svn commit: r1441907 -
/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java
Author: sagara
Date: Sun Feb 3 12:35:09 2013
New Revision: 1441907
URL: http://svn.apache.org/viewvc?rev=1441907&view=rev
Log:
Applied patch for AXIS2-5480
Modified:
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java?rev=1441907&r1=1441906&r2=1441907&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/DefaultObjectSupplier.java Sun Feb 3 12:35:09 2013
@@ -20,6 +20,7 @@
package org.apache.axis2.engine;
import java.lang.reflect.Modifier;
+import java.lang.Enum;
import org.apache.axis2.AxisFault;
@@ -38,6 +39,14 @@ public class DefaultObjectSupplier imple
// those classes have to be instantiated in a different way than a normal initialization.
instance = clazz.getConstructor(new Class[] { parent })
.newInstance(new Object[] { getObject(parent) });
+ } else if (clazz.isEnum()) {
+ // enum just can create a new instance, so we have to resort
+ // to a default value, obviously many options are possible.
+ try {
+ instance = Enum.valueOf(clazz, "NULL");
+ } catch (IllegalArgumentException iae) {
+ throw AxisFault.makeFault(new Exception("Cannot create an enum object of type ("+clazz.getName()+") without a default value, please add a 'NULL' value to the enum that can be used as default."));
+ }
} else {
instance = clazz.newInstance();
}