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


Reply via email to