- Revision
- 640
- Author
- mauro
- Date
- 2008-04-20 18:11:05 -0500 (Sun, 20 Apr 2008)
Log Message
Added list of stack messages to global error message.
Modified Paths
- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java
- trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/GlobalErrorMessage.java
- trunk/waffle-core/src/test/java/org/codehaus/waffle/validation/DefaultErrorsContextTest.java
Diff
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java (639 => 640)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-20 22:27:30 UTC (rev 639) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java 2008-04-20 23:11:05 UTC (rev 640) @@ -190,7 +190,7 @@ } catch (ActionMethodInvocationException e) { servletMonitor.actionMethodInvocationFailed(e); errorsContext.addErrorMessage(new GlobalErrorMessage("Action method invocation failed for controller " - + controllerDefinition + ": " + e.getMessage(), e)); + + controllerDefinition, e)); view = buildActionMethodFailureView(controllerDefinition); } requestAttributeBinder.bind(request, controllerDefinition.getController());
Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/GlobalErrorMessage.java (639 => 640)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/GlobalErrorMessage.java 2008-04-20 22:27:30 UTC (rev 639) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/GlobalErrorMessage.java 2008-04-20 23:11:05 UTC (rev 640) @@ -10,7 +10,8 @@ *****************************************************************************/ package org.codehaus.waffle.validation; -import static java.util.Arrays.asList; +import java.util.ArrayList; +import java.util.List; /** @@ -39,18 +40,32 @@ return message; } + public List<String> getStackMessages(){ + List<String> messages = new ArrayList<String>(); + addStackMessages(cause, messages); + return messages; + } + public Throwable getCause(){ return cause; } + + private void addStackMessages(Throwable cause, List<String> messages) { + if ( cause != null ){ + messages.add(cause.getMessage()); + addStackMessages(cause.getCause(), messages); + } + } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("[GlobalErrorMessage message="); sb.append(message); - sb.append(", stackTrace="); - sb.append(asList(cause.getStackTrace())); + sb.append(", stackMessages="); + sb.append(getStackMessages()); sb.append("]"); return sb.toString(); } + }
Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/validation/DefaultErrorsContextTest.java (639 => 640)
--- trunk/waffle-core/src/test/java/org/codehaus/waffle/validation/DefaultErrorsContextTest.java 2008-04-20 22:27:30 UTC (rev 639) +++ trunk/waffle-core/src/test/java/org/codehaus/waffle/validation/DefaultErrorsContextTest.java 2008-04-20 23:11:05 UTC (rev 640) @@ -1,18 +1,20 @@ package org.codehaus.waffle.validation; -import org.codehaus.waffle.Constants; +import static java.util.Arrays.asList; import static org.codehaus.waffle.validation.ErrorMessage.Type.BIND; import static org.codehaus.waffle.validation.ErrorMessage.Type.FIELD; import static org.codehaus.waffle.validation.ErrorMessage.Type.GLOBAL; -import org.jmock.Expectations; -import org.jmock.Mockery; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import org.junit.Test; import javax.servlet.http.HttpServletRequest; +import org.codehaus.waffle.Constants; +import org.jmock.Expectations; +import org.jmock.Mockery; +import org.junit.Test; + /** * * @author Michael Ward @@ -35,6 +37,13 @@ assertEquals(1, context.getErrorMessageCountOfType(GLOBAL)); assertEquals(1, context.getErrorMessageCountForField(GLOBAL, "any.field.name")); } + + @Test + public void canRetrieveStackMessagesFromGlobalErrorMessage() { + Throwable cause = new Throwable("1", new Throwable("2", new Throwable("3"))); + GlobalErrorMessage errorMessage = new GlobalErrorMessage("global message", cause); + assertEquals(asList("1", "2", "3"), errorMessage.getStackMessages()); + } @Test public void canDetermineIfContextHasMessagesByType() {
To unsubscribe from this list please visit:
