Author: eranga
Date: Sun Mar 27 09:13:39 2011
New Revision: 1085895

URL: http://svn.apache.org/viewvc?rev=1085895&view=rev
Log:
AXIS2-4987 - Cannot use constants as discriminators in CORBA union data types

Fixed. Updated the parseValue method.


Modified:
    
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java

Modified: 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java?rev=1085895&r1=1085894&r2=1085895&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/corba/src/org/apache/axis2/corba/receivers/CorbaUtil.java
 Sun Mar 27 09:13:39 2011
@@ -631,7 +631,8 @@ public class CorbaUtil implements CorbaC
             return null;
         value = value.trim();
         Object ret = null;
-        switch(type.getTypeCode().kind().value()) {
+        int kind = type.getTypeCode().kind().value();
+        switch(kind) {
             case TCKind._tk_long : ret = Integer.valueOf(value); break;
             case TCKind._tk_ulong : ret = Integer.valueOf(value); break;
             case TCKind._tk_longlong : ret = Long.valueOf(value); break;
@@ -653,8 +654,14 @@ public class CorbaUtil implements CorbaC
                 enumValue.setValue(i);
                 ret = enumValue;
                 break;
+            case TCKind._tk_alias:
+                Typedef typedef = (Typedef) type;
+                AliasValue aliasValue = new AliasValue(typedef);
+                aliasValue.setValue(parseValue(typedef.getDataType(), value));
+                ret = aliasValue;
+                break;
             default:
-                log.error("ERROR! Invalid dataType");
+                log.error("ERROR! Invalid dataType (" + kind + ")");
                 break;
         }
         return ret;


Reply via email to