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