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;