Browse Source

Revised assertions and $[invocationTime] support for exceptionMessage

Issue: SPR-15763
pull/1476/head
Juergen Hoeller 9 years ago
parent
commit
19a8efc717
  1. 38
      spring-aop/src/main/java/org/springframework/aop/interceptor/CustomizableTraceInterceptor.java

38
spring-aop/src/main/java/org/springframework/aop/interceptor/CustomizableTraceInterceptor.java

@ -129,20 +129,20 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
/** /**
* The default message used for writing method entry messages. * The default message used for writing method entry messages.
*/ */
private static final String DEFAULT_ENTER_MESSAGE = private static final String DEFAULT_ENTER_MESSAGE = "Entering method '" +
"Entering method '" + PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]"; PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]";
/** /**
* The default message used for writing method exit messages. * The default message used for writing method exit messages.
*/ */
private static final String DEFAULT_EXIT_MESSAGE = private static final String DEFAULT_EXIT_MESSAGE = "Exiting method '" +
"Exiting method '" + PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]"; PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]";
/** /**
* The default message used for writing exception messages. * The default message used for writing exception messages.
*/ */
private static final String DEFAULT_EXCEPTION_MESSAGE = private static final String DEFAULT_EXCEPTION_MESSAGE = "Exception thrown in method '" +
"Exception thrown in method '" + PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]"; PLACEHOLDER_METHOD_NAME + "' of class [" + PLACEHOLDER_TARGET_CLASS_NAME + "]";
/** /**
* The {@code Pattern} used to match placeholders. * The {@code Pattern} used to match placeholders.
@ -183,14 +183,14 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
* </ul> * </ul>
*/ */
public void setEnterMessage(String enterMessage) throws IllegalArgumentException { public void setEnterMessage(String enterMessage) throws IllegalArgumentException {
Assert.hasText(enterMessage, "'enterMessage' must not be empty"); Assert.hasText(enterMessage, "enterMessage must not be empty");
checkForInvalidPlaceholders(enterMessage); checkForInvalidPlaceholders(enterMessage);
Assert.doesNotContain(enterMessage, PLACEHOLDER_RETURN_VALUE, Assert.doesNotContain(enterMessage, PLACEHOLDER_RETURN_VALUE,
"enterMessage cannot contain placeholder [" + PLACEHOLDER_RETURN_VALUE + "]"); "enterMessage cannot contain placeholder " + PLACEHOLDER_RETURN_VALUE);
Assert.doesNotContain(enterMessage, PLACEHOLDER_EXCEPTION, Assert.doesNotContain(enterMessage, PLACEHOLDER_EXCEPTION,
"enterMessage cannot contain placeholder [" + PLACEHOLDER_EXCEPTION + "]"); "enterMessage cannot contain placeholder " + PLACEHOLDER_EXCEPTION);
Assert.doesNotContain(enterMessage, PLACEHOLDER_INVOCATION_TIME, Assert.doesNotContain(enterMessage, PLACEHOLDER_INVOCATION_TIME,
"enterMessage cannot contain placeholder [" + PLACEHOLDER_INVOCATION_TIME + "]"); "enterMessage cannot contain placeholder " + PLACEHOLDER_INVOCATION_TIME);
this.enterMessage = enterMessage; this.enterMessage = enterMessage;
} }
@ -207,10 +207,10 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
* </ul> * </ul>
*/ */
public void setExitMessage(String exitMessage) { public void setExitMessage(String exitMessage) {
Assert.hasText(exitMessage, "'exitMessage' must not be empty"); Assert.hasText(exitMessage, "exitMessage must not be empty");
checkForInvalidPlaceholders(exitMessage); checkForInvalidPlaceholders(exitMessage);
Assert.doesNotContain(exitMessage, PLACEHOLDER_EXCEPTION, Assert.doesNotContain(exitMessage, PLACEHOLDER_EXCEPTION,
"exitMessage cannot contain placeholder [" + PLACEHOLDER_EXCEPTION + "]"); "exitMessage cannot contain placeholder" + PLACEHOLDER_EXCEPTION);
this.exitMessage = exitMessage; this.exitMessage = exitMessage;
} }
@ -226,12 +226,10 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
* </ul> * </ul>
*/ */
public void setExceptionMessage(String exceptionMessage) { public void setExceptionMessage(String exceptionMessage) {
Assert.hasText(exceptionMessage, "'exceptionMessage' must not be empty"); Assert.hasText(exceptionMessage, "exceptionMessage must not be empty");
checkForInvalidPlaceholders(exceptionMessage); checkForInvalidPlaceholders(exceptionMessage);
Assert.doesNotContain(exceptionMessage, PLACEHOLDER_RETURN_VALUE, Assert.doesNotContain(exceptionMessage, PLACEHOLDER_RETURN_VALUE,
"exceptionMessage cannot contain placeholder [" + PLACEHOLDER_RETURN_VALUE + "]"); "exceptionMessage cannot contain placeholder " + PLACEHOLDER_RETURN_VALUE);
Assert.doesNotContain(exceptionMessage, PLACEHOLDER_INVOCATION_TIME,
"exceptionMessage cannot contain placeholder [" + PLACEHOLDER_INVOCATION_TIME + "]");
this.exceptionMessage = exceptionMessage; this.exceptionMessage = exceptionMessage;
} }
@ -263,8 +261,8 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
stopWatch.stop(); stopWatch.stop();
} }
exitThroughException = true; exitThroughException = true;
writeToLog(logger, writeToLog(logger, replacePlaceholders(
replacePlaceholders(this.exceptionMessage, invocation, null, ex, stopWatch.getTotalTimeMillis()), ex); this.exceptionMessage, invocation, null, ex, stopWatch.getTotalTimeMillis()), ex);
throw ex; throw ex;
} }
finally { finally {
@ -272,8 +270,8 @@ public class CustomizableTraceInterceptor extends AbstractTraceInterceptor {
if (stopWatch.isRunning()) { if (stopWatch.isRunning()) {
stopWatch.stop(); stopWatch.stop();
} }
writeToLog(logger, writeToLog(logger, replacePlaceholders(
replacePlaceholders(this.exitMessage, invocation, returnValue, null, stopWatch.getTotalTimeMillis())); this.exitMessage, invocation, returnValue, null, stopWatch.getTotalTimeMillis()));
} }
} }
} }

Loading…
Cancel
Save