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;