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