INT-4218: MessagingMethodInvokerHelp Improvements
JIRA: https://jira.spring.io/browse/INT-4218 * Add `InvocableHandlerMethod` invocation threshold logic to give up eventually in favor of permanent expression evaluation * Add `ParametersWrapper.toString()` for better logging messages * Log `InvocableHandlerMethod` invocation failure message in favor of SpEL only once when `failedAttempts` is exceeded already * Switch to `spelOnly` mode after that * Refactor `MessagingMethodInvokerHelper.processInternal()` to separate SpEL or Ivocable logic via their own invocation methods * Move `MessagingMethodInvokerHelper.HandlerMethod` static fields to the `MessagingMethodInvokerHelper` level since it doesn't matter from this class perspective but can be reused in other places from top level of the `MessagingMethodInvokerHelper` class * Catch `IllegalArgumentException` with the `java.lang.ClassCastException@...` message. See http://stackoverflow.com/questions/16042591/reflections-illegalargumentexception-causes for more info Address PR comments * Make `handlerMethod.failedAttempts` conditional expression as `>=` to avoid race conditions in multi-threaded environment * Analyze StackTrace for the class of the `IllegalStateExpception` avoid SpEL fall back in case of user exception, not reflection invocation * Fix race condition in the `TcpNioConnectionTests`, when atomic value is set after `latch.countDown()`
This commit is contained in:
committed by
Gary Russell
parent
802061985c
commit
9839b5fcaa
@@ -716,8 +716,8 @@ public class TcpNioConnectionTests {
|
||||
@Override
|
||||
public boolean onMessage(Message<?> message) {
|
||||
if (!(message instanceof ErrorMessage)) {
|
||||
assemblerLatch.countDown();
|
||||
assembler.set(Thread.currentThread());
|
||||
assemblerLatch.countDown();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user