diff --git a/spring-binding/src/main/java/org/springframework/binding/convert/support/TextToClass.java b/spring-binding/src/main/java/org/springframework/binding/convert/support/TextToClass.java index a75c11e4..ad0e7e89 100644 --- a/spring-binding/src/main/java/org/springframework/binding/convert/support/TextToClass.java +++ b/spring-binding/src/main/java/org/springframework/binding/convert/support/TextToClass.java @@ -56,7 +56,7 @@ public class TextToClass extends ConversionServiceAwareConverter { else { // try first an aliased based lookup if (getConversionService() != null) { - Class aliasedClass = getConversionService().getClassByAlias(text); + Class aliasedClass = getConversionService().getClassByAlias(classNameOrAlias); if (aliasedClass != null) { return aliasedClass; } diff --git a/spring-webflow/changelog.txt b/spring-webflow/changelog.txt index 84b111bc..8c7f28f0 100644 --- a/spring-webflow/changelog.txt +++ b/spring-webflow/changelog.txt @@ -27,6 +27,7 @@ Package org.springframework.webflow.engine occur during exception handling (SWF-261). * The XmlFlowBuilder now also supports OGNL expressions in the "to" attribute of a transition when using the "on-exception" attribute (SWF-269). +* The XmlFlowBuilder now consistently uses "fromStringTo(Class.class)" to resolve types (SWF-268). Package org.springframework.webflow.execution * Added FlowExecutionListener.sessionCreated(RequestContext, FlowSession) callback, useful for diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/xml/XmlFlowBuilder.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/xml/XmlFlowBuilder.java index a860e4b2..90347b3b 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/xml/XmlFlowBuilder.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/builder/xml/XmlFlowBuilder.java @@ -856,16 +856,9 @@ public class XmlFlowBuilder extends BaseFlowBuilder implements ResourceHolder { private Object convertPropertyValue(Element element, String stringValue) { if (element.hasAttribute(TYPE_ATTRIBUTE)) { - ConversionExecutor executor = fromStringTo(element.getAttribute(TYPE_ATTRIBUTE)); - if (executor != null) { - // convert string value to instance of aliased type - return executor.execute(stringValue); - } - else { - Class targetClass = (Class)fromStringTo(Class.class).execute(element.getAttribute(TYPE_ATTRIBUTE)); - // convert string value to instance of target class - return fromStringTo(targetClass).execute(stringValue); - } + Class targetClass = (Class)fromStringTo(Class.class).execute(element.getAttribute(TYPE_ATTRIBUTE)); + // convert string value to instance of target class + return fromStringTo(targetClass).execute(stringValue); } else { return stringValue; @@ -1002,7 +995,9 @@ public class XmlFlowBuilder extends BaseFlowBuilder implements ResourceHolder { if (StringUtils.hasText(from)) { if (StringUtils.hasText(to)) { ConversionService service = getLocalFlowServiceLocator().getConversionService(); - return service.getConversionExecutor(service.getClassByAlias(from), service.getClassByAlias(to)); + Class sourceClass = (Class)fromStringTo(Class.class).execute(from); + Class targetClass = (Class)fromStringTo(Class.class).execute(to); + return service.getConversionExecutor(sourceClass, targetClass); } else { throw new IllegalArgumentException("Use of the 'from' attribute requires use of the 'to' attribute");