empty string handling

This commit is contained in:
Keith Donald
2008-11-10 21:26:24 +00:00
parent ef915ac10b
commit 34192a14bf
2 changed files with 22 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ package org.springframework.webflow.action;
import org.springframework.core.JdkVersion;
import org.springframework.core.enums.LabeledEnum;
import org.springframework.util.StringUtils;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;
@@ -81,7 +82,13 @@ public class ResultObjectBasedEventFactory extends EventFactorySupport implement
String eventId = EnumUtils.getEnumName(resultObject);
return event(source, eventId, getResultAttributeName(), resultObject);
} else if (isString(resultObject.getClass())) {
return event(source, (String) resultObject);
String resultString = (String) resultObject;
if (StringUtils.hasText(resultString)) {
return event(source, resultString);
} else {
// treat an empty string as the null event
return event(source, getNullEventId());
}
} else if (isEvent(resultObject.getClass())) {
return (Event) resultObject;
} else {

View File

@@ -34,6 +34,20 @@ public class EvaluateActionTests extends TestCase {
assertEquals("bar", result.getId());
}
public void testEvaluateExpressionEmptyStringResult() throws Exception {
EvaluateAction action = new EvaluateAction(new StaticExpression(""), null);
MockRequestContext context = new MockRequestContext();
Event result = action.execute(context);
assertEquals("null", result.getId());
}
public void testEvaluateExpressionNullResult() throws Exception {
EvaluateAction action = new EvaluateAction(new StaticExpression(null), null);
MockRequestContext context = new MockRequestContext();
Event result = action.execute(context);
assertEquals("success", result.getId());
}
public void testEvaluateExpressionResultExposer() throws Exception {
StaticExpression resultExpression = new StaticExpression("");
EvaluateAction action = new EvaluateAction(new StaticExpression("bar"), new ActionResultExposer(