### Eclipse Workspace Patch 1.0 #P Imperius-WPML Index: imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java =================================================================== RCS file: /cvsroot/wpml/Imperius-WPML/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java,v retrieving revision 1.2 diff -u -r1.2 TypeResolver.java --- imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java 21 Oct 2008 15:20:25 -0000 1.2 +++ imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java 17 Dec 2008 15:57:29 -0000 @@ -270,7 +270,11 @@ { if(isReference(leftType)) { - if(OBJECT_STRING.equalsIgnoreCase(leftType.getReferenceTypeName()) && isString(rightType)) +// if(OBJECT_STRING.equalsIgnoreCase(leftType.getReferenceTypeName()) && isString(rightType)) +// { +// res = true; +// } + if (isString(rightType) && isAssignableFromString(leftType)) { res = true; } @@ -286,6 +290,19 @@ return res; } + private static boolean isAssignableFromString(TypeInfo type) { + String typeName = type.getReferenceTypeName(); + if (typeName != null) { + try { + Class clazz = type.getClass().forName(typeName); + return clazz.isAssignableFrom(String.class); + } catch (ClassNotFoundException e) { + ; + } + } + return false; + + } public static boolean isTypeAssignableForRelation(TypeInfo leftType, TypeInfo rightType) {