From 5caa48be8e5f988443a09168fb4c6eb3902b0c18 Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Fri, 13 Mar 2009 22:15:20 +0000 Subject: [PATCH] fixed npe caused by mvc view factory creator --- .../webflow/mvc/builder/MvcViewFactoryCreator.java | 2 +- .../springframework/webflow/mvc/view/AbstractMvcView.java | 6 ++---- .../org/springframework/webflow/mvc/view/MvcViewTests.java | 4 ++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java index 7f94e046..9a0cc0c1 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/builder/MvcViewFactoryCreator.java @@ -69,7 +69,7 @@ public class MvcViewFactoryCreator implements ViewFactoryCreator, ApplicationCon private String fieldMarkerPrefix; - private MessageCodesResolver messageCodesResolver; + private MessageCodesResolver messageCodesResolver = new WebFlowMessageCodesResolver(); /** * Create a new Spring MVC View Factory Creator. diff --git a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java index 37e534ad..1448fa7d 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/mvc/view/AbstractMvcView.java @@ -55,7 +55,6 @@ import org.springframework.webflow.execution.FlowExecutionKey; import org.springframework.webflow.execution.RequestContext; import org.springframework.webflow.execution.View; import org.springframework.webflow.validation.ValidationHelper; -import org.springframework.webflow.validation.WebFlowMessageCodesResolver; /** * Base view implementation for the Spring Web MVC Servlet and Spring Web MVC Portlet frameworks. @@ -88,7 +87,7 @@ public abstract class AbstractMvcView implements View { private BinderConfiguration binderConfiguration; - private MessageCodesResolver messageCodesResolver = new WebFlowMessageCodesResolver(); + private MessageCodesResolver messageCodesResolver; /** * Creates a new MVC view. @@ -498,8 +497,7 @@ public abstract class AbstractMvcView implements View { String model = getModelExpression().getExpressionString(); String field = error.getMapping().getTargetExpression().getExpressionString(); Class fieldType = error.getMapping().getTargetExpression().getValueType(getModelObject()); - String[] messageCodes = messageCodesResolver.resolveMessageCodes(error.getCode(), model, field, - fieldType); + String[] messageCodes = messageCodesResolver.resolveMessageCodes(error.getCode(), model, field, fieldType); return new MessageBuilder().error().source(field).codes(messageCodes).resolvableArg(field).defaultText( error.getCode() + " on " + field).build(); } diff --git a/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java b/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java index d1451493..e3c51f4d 100644 --- a/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java +++ b/spring-webflow/src/test/java/org/springframework/webflow/mvc/view/MvcViewTests.java @@ -33,6 +33,7 @@ import org.springframework.webflow.expression.DefaultExpressionParserFactory; import org.springframework.webflow.test.MockFlowExecutionKey; import org.springframework.webflow.test.MockRequestContext; import org.springframework.webflow.test.MockRequestControlContext; +import org.springframework.webflow.validation.WebFlowMessageCodesResolver; public class MvcViewTests extends TestCase { @@ -222,6 +223,7 @@ public class MvcViewTests extends TestCase { org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser()); + view.setMessageCodesResolver(new WebFlowMessageCodesResolver()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); view.render(); @@ -407,6 +409,7 @@ public class MvcViewTests extends TestCase { org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser()); + view.setMessageCodesResolver(new WebFlowMessageCodesResolver()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); assertTrue(bindBean.validationMethodInvoked); @@ -431,6 +434,7 @@ public class MvcViewTests extends TestCase { org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(DefaultExpressionParserFactory.getExpressionParser()); + view.setMessageCodesResolver(new WebFlowMessageCodesResolver()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); assertFalse(bindBean.validationMethodInvoked);