Top Description Inners Fields Constructors Methods
org.springframework.messaging.handler.invocation

public abstract Class AbstractMethodMessageHandler<T>

extends Object
implements MessageHandler, ApplicationContextAware, InitializingBean
Class Inheritance
All Implemented Interfaces
org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.Aware, org.springframework.messaging.MessageHandler
Known Direct Subclasses
org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler
Type Parameters
<T>
the type of the Object that contains information mapping a org.springframework.messaging.handler.HandlerMethod to incoming messages
Imports
java.lang.reflect.Method, java.util.ArrayList, .Arrays, .Collection, .Collections, .Comparator, .LinkedHashMap, .List, .Map, .Set, java.util.concurrent.CompletableFuture, .ConcurrentHashMap, java.util.function.BiConsumer, .Function, java.util.stream.Collectors, org.apache.commons.logging.Log, .LogFactory, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContext, .ApplicationContextAware, org.springframework.core.MethodIntrospector, .MethodParameter, org.springframework.lang.Nullable, org.springframework.messaging.Message, .MessageHandler, .MessageHandlingException, .MessagingException, org.springframework.messaging.handler.DestinationPatternsMessageCondition, .HandlerMethod, .MessagingAdviceBean, org.springframework.messaging.support.MessageBuilder, .MessageHeaderAccessor, org.springframework.util.Assert, .ClassUtils, .CollectionUtils, .LinkedMultiValueMap, .MultiValueMap, .StringUtils

Abstract base class for HandlerMethod-based message handling. Provides most of the logic required to discover handler methods at startup, find a matching handler method at runtime for a given message and invoke it.

Also supports discovering and invoking exception handling methods to process exceptions raised during message handling.

Authors
Rossen Stoyanchev, Juergen Hoeller
Since
4.0

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
AbstractMethodMessageHandler.Match

A thin wrapper around a matched HandlerMethod and its matched mapping for the purpose of comparing the best match with a comparator in the context of a message.

private class
private class

Field Summary

Modifier and TypeField and Description
private ApplicationContext
private final HandlerMethodArgumentResolverComposite
private final List<HandlerMethodArgumentResolver>
private final List<HandlerMethodReturnValueHandler>
private final MultiValueMap<String, T>
private final List<String>
private final Map<MessagingAdviceBean, AbstractExceptionHandlerMethodResolver>
private final Map<Class<?>, AbstractExceptionHandlerMethodResolver>
private Log
private final Map<T, HandlerMethod>
protected final Log
private final HandlerMethodReturnValueHandlerComposite
private static final String
SCOPED_TARGET_NAME_PREFIX

Bean name prefix for target beans behind scoped proxies.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
addMatchesToCollection(Collection<T> mappingsToCheck, Message<?> message, List<AbstractMethodMessageHandler<T>.Match> matches)

public void
afterPropertiesSet()

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

protected abstract AbstractExceptionHandlerMethodResolver
protected HandlerMethod
createHandlerMethod(Object handler, Method method)

Create a HandlerMethod instance from an Object handler that is either a handler instance or a String-based bean name.

protected final void
detectHandlerMethods(final Object
the handler to check, either an instance of a Spring bean name
handler
)

Detect if the given handler has any methods that can handle messages and if so register it with the extracted mapping information.

private String
formatMappings(Class<?> userType, Map<Method, T> methods)

public ApplicationContext
public List<HandlerMethodArgumentResolver>
getArgumentResolvers()

Return the complete list of argument resolvers.

public List<HandlerMethodArgumentResolver>
getCustomArgumentResolvers()

Return the configured custom argument resolvers, if any.

public List<HandlerMethodReturnValueHandler>
getCustomReturnValueHandlers()

Return the configured custom return value handlers, if any.

protected abstract String
getDestination(Message<?> message)

public Collection<String>
getDestinationPrefixes()

Return the configured destination prefixes, if any.

protected abstract Set<String>
getDirectLookupDestinations(T mapping)

Return destinations contained in the mapping that are not patterns and are therefore suitable for direct lookups.

protected InvocableHandlerMethod

Returns:

a method to handle the exception, or null
getExceptionHandlerMethod
(HandlerMethod
the method where the exception was raised
handlerMethod
,
Exception
the raised exception
exception
)

Find an @MessageExceptionHandler method for the given exception.

protected Log
getHandlerMethodLogger()

Return a logger to set on InvocableHandlerMethod.

public Map<T, HandlerMethod>
getHandlerMethods()

Return a map with all handler methods and their mappings.

protected String
getLookupDestination(String destination)

Check whether the given destination (of an incoming message) matches to one of the configured destination prefixes and if so return the remaining portion of the destination after the matched prefix.

protected abstract Comparator<T>

Returns:

the comparator, never null
getMappingComparator
(Message<?>
the current Message
message
)

Return a comparator for sorting matching mappings.

protected abstract T

Returns:

the mapping, or null if the method is not mapped
getMappingForMethod
(Method
the method to provide a mapping for
method
,
Class<?>
the handler type, possibly a subtype of the method's declaring class
handlerType
)

Provide the mapping for a handler method.

protected abstract T

Returns:

the match or null if there is no match
getMatchingMapping
(T
the mapping to get a match for
mapping
,
Message<?>
the message being handled
message
)

Check if a mapping matches the current message and return a possibly new mapping with conditions relevant to the current request.

protected Log
public List<HandlerMethodReturnValueHandler>
getReturnValueHandlers()

Return the complete list of return value handlers.

protected void
handleMatch(T mapping, HandlerMethod handlerMethod, String lookupDestination, Message<?> message)

public void
handleMessage(Message<?>
the message to be handled
message
)

Implements org.springframework.messaging.MessageHandler.handleMessage.

Handle the given message.
protected void
handleMessageInternal(Message<?> message, String lookupDestination)

protected void
handleNoMatch(Set<T> ts, String lookupDestination, Message<?> message)

protected abstract List<? extends HandlerMethodArgumentResolver>
initArgumentResolvers()

Return the list of argument resolvers to use.

protected abstract List<? extends HandlerMethodReturnValueHandler>
initReturnValueHandlers()

Return the list of return value handlers to use.

protected abstract boolean
isHandler(Class<?> beanType)

Whether the given bean type should be introspected for messaging handling methods.

protected void
processHandlerMethodException(HandlerMethod handlerMethod, Exception exception, Message<?> message)

protected void
registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver)

Subclasses can invoke this method to populate the MessagingAdviceBean cache (e.g. to support "global" @MessageExceptionHandler).

protected void
registerHandlerMethod(Object
the bean name of the handler or the handler instance
handler
,
Method
the method to register
method
,
T
the mapping conditions associated with the handler method
mapping
)

Register a handler method and its unique mapping.

public void
setApplicationContext(ApplicationContext
the ApplicationContext object to be used by this object
applicationContext
)

Implements org.springframework.context.ApplicationContextAware.setApplicationContext.

Set the ApplicationContext that this object runs in. Normally this call will be used to initialize the object.
public void
setArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)

Configure the complete list of supported argument types, effectively overriding the ones configured by default.

public void
setCustomArgumentResolvers(List<HandlerMethodArgumentResolver> customArgumentResolvers)

Sets the list of custom HandlerMethodArgumentResolvers that will be used after resolvers for supported argument type.

public void
setCustomReturnValueHandlers(List<HandlerMethodReturnValueHandler> customReturnValueHandlers)

Set the list of custom HandlerMethodReturnValueHandlers that will be used after return value handlers for known types.

public void
setDestinationPrefixes(Collection<String> prefixes)

When this property is configured only messages to destinations matching one of the configured prefixes are eligible for handling.

public void
setReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)

Configure the complete list of supported return value types, effectively overriding the ones configured by default.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

applicationContextback to summary
private ApplicationContext applicationContext
Annotations
@Nullable
argumentResolversback to summary
private final HandlerMethodArgumentResolverComposite argumentResolvers
customArgumentResolversback to summary
private final List<HandlerMethodArgumentResolver> customArgumentResolvers
customReturnValueHandlersback to summary
private final List<HandlerMethodReturnValueHandler> customReturnValueHandlers
destinationLookupback to summary
private final MultiValueMap<String, T> destinationLookup
destinationPrefixesback to summary
private final List<String> destinationPrefixes
exceptionHandlerAdviceCacheback to summary
private final Map<MessagingAdviceBean, AbstractExceptionHandlerMethodResolver> exceptionHandlerAdviceCache
exceptionHandlerCacheback to summary
private final Map<Class<?>, AbstractExceptionHandlerMethodResolver> exceptionHandlerCache
handlerMethodLoggerback to summary
private Log handlerMethodLogger
Annotations
@Nullable
handlerMethodsback to summary
private final Map<T, HandlerMethod> handlerMethods
loggerback to summary
protected final Log logger
returnValueHandlersback to summary
private final HandlerMethodReturnValueHandlerComposite returnValueHandlers
SCOPED_TARGET_NAME_PREFIXback to summary
private static final String SCOPED_TARGET_NAME_PREFIX

Bean name prefix for target beans behind scoped proxies. Used to exclude those targets from handler method detection, in favor of the corresponding proxies.

We're not checking the autowire-candidate status here, which is how the proxy target filtering problem is being handled at the autowiring level, since autowire-candidate may have been turned to false for other reasons, while still expecting the bean to be eligible for handler methods.

Originally defined in org.springframework.aop.scope.ScopedProxyUtils but duplicated here to avoid a hard dependency on the spring-aop module.

Constructor Detail

AbstractMethodMessageHandlerback to summary
public AbstractMethodMessageHandler()

Method Detail

addMatchesToCollectionback to summary
private void addMatchesToCollection(Collection<T> mappingsToCheck, Message<?> message, List<AbstractMethodMessageHandler<T>.Match> matches)
afterPropertiesSetback to summary
public void afterPropertiesSet()

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Doc from org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

Annotations
@Override
createExceptionHandlerMethodResolverForback to summary
protected abstract AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(Class<?> beanType)
createHandlerMethodback to summary
protected HandlerMethod createHandlerMethod(Object handler, Method method)

Create a HandlerMethod instance from an Object handler that is either a handler instance or a String-based bean name.

detectHandlerMethodsback to summary
protected final void detectHandlerMethods(final Object handler)

Detect if the given handler has any methods that can handle messages and if so register it with the extracted mapping information.

Parameters
handler:Object

the handler to check, either an instance of a Spring bean name

formatMappingsback to summary
private String formatMappings(Class<?> userType, Map<Method, T> methods)
getApplicationContextback to summary
public ApplicationContext getApplicationContext()
Annotations
@Nullable
getArgumentResolversback to summary
public List<HandlerMethodArgumentResolver> getArgumentResolvers()

Return the complete list of argument resolvers.

getCustomArgumentResolversback to summary
public List<HandlerMethodArgumentResolver> getCustomArgumentResolvers()

Return the configured custom argument resolvers, if any.

getCustomReturnValueHandlersback to summary
public List<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()

Return the configured custom return value handlers, if any.

getDestinationback to summary
protected abstract String getDestination(Message<?> message)
Annotations
@Nullable
getDestinationPrefixesback to summary
public Collection<String> getDestinationPrefixes()

Return the configured destination prefixes, if any.

getDirectLookupDestinationsback to summary
protected abstract Set<String> getDirectLookupDestinations(T mapping)

Return destinations contained in the mapping that are not patterns and are therefore suitable for direct lookups.

getExceptionHandlerMethodback to summary
protected InvocableHandlerMethod getExceptionHandlerMethod(HandlerMethod handlerMethod, Exception exception)

Find an @MessageExceptionHandler method for the given exception. The default implementation searches methods in the class hierarchy of the HandlerMethod first and if not found, it continues searching for additional @MessageExceptionHandler methods among the configured MessagingAdviceBean, if any.

Parameters
handlerMethod:HandlerMethod

the method where the exception was raised

exception:Exception

the raised exception

Returns:InvocableHandlerMethod

a method to handle the exception, or null

Annotations
@Nullable
Since
4.2
getHandlerMethodLoggerback to summary
protected Log getHandlerMethodLogger()

Return a logger to set on InvocableHandlerMethod.

Annotations
@Nullable
Since
5.1
getHandlerMethodsback to summary
public Map<T, HandlerMethod> getHandlerMethods()

Return a map with all handler methods and their mappings.

getLookupDestinationback to summary
protected String getLookupDestination(String destination)

Check whether the given destination (of an incoming message) matches to one of the configured destination prefixes and if so return the remaining portion of the destination after the matched prefix.

If there are no matching prefixes, return null.

If there are no destination prefixes, return the destination as is.

Annotations
@SuppressWarnings:ForLoopReplaceableByForEach
@Nullable
getMappingComparatorback to summary
protected abstract Comparator<T> getMappingComparator(Message<?> message)

Return a comparator for sorting matching mappings. The returned comparator should sort 'better' matches higher.

Parameters
message:Message<?>

the current Message

Returns:Comparator<T>

the comparator, never null

getMappingForMethodback to summary
protected abstract T getMappingForMethod(Method method, Class<?> handlerType)

Provide the mapping for a handler method.

Parameters
method:Method

the method to provide a mapping for

handlerType:Class<?>

the handler type, possibly a subtype of the method's declaring class

Returns:T

the mapping, or null if the method is not mapped

Annotations
@Nullable
getMatchingMappingback to summary
protected abstract T getMatchingMapping(T mapping, Message<?> message)

Check if a mapping matches the current message and return a possibly new mapping with conditions relevant to the current request.

Parameters
mapping:T

the mapping to get a match for

message:Message<?>

the message being handled

Returns:T

the match or null if there is no match

Annotations
@Nullable
getReturnValueHandlerLoggerback to summary
protected Log getReturnValueHandlerLogger()

Return a logger to set on HandlerMethodReturnValueHandlerComposite.

Annotations
@Nullable
Since
5.1
getReturnValueHandlersback to summary
public List<HandlerMethodReturnValueHandler> getReturnValueHandlers()

Return the complete list of return value handlers.

handleMatchback to summary
protected void handleMatch(T mapping, HandlerMethod handlerMethod, String lookupDestination, Message<?> message)
handleMessageback to summary
public void handleMessage(Message<?> message) throws MessagingException

Implements org.springframework.messaging.MessageHandler.handleMessage.

Doc from org.springframework.messaging.MessageHandler.handleMessage.

Handle the given message.

Parameters
message:Message<?>

the message to be handled

Annotations
@Override
Exceptions
MessagingException:
if the handler failed to process the message
handleMessageInternalback to summary
protected void handleMessageInternal(Message<?> message, String lookupDestination)
handleNoMatchback to summary
protected void handleNoMatch(Set<T> ts, String lookupDestination, Message<?> message)
initArgumentResolversback to summary
protected abstract List<? extends HandlerMethodArgumentResolver> initArgumentResolvers()

Return the list of argument resolvers to use. Invoked only if the resolvers have not already been set via setArgumentResolvers.

Subclasses should also take into account custom argument types configured via setCustomArgumentResolvers.

initReturnValueHandlersback to summary
protected abstract List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers()

Return the list of return value handlers to use. Invoked only if the return value handlers have not already been set via setReturnValueHandlers.

Subclasses should also take into account custom return value types configured via setCustomReturnValueHandlers.

isHandlerback to summary
protected abstract boolean isHandler(Class<?> beanType)

Whether the given bean type should be introspected for messaging handling methods.

processHandlerMethodExceptionback to summary
protected void processHandlerMethodException(HandlerMethod handlerMethod, Exception exception, Message<?> message)
registerExceptionHandlerAdviceback to summary
protected void registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver)

Subclasses can invoke this method to populate the MessagingAdviceBean cache (e.g. to support "global" @MessageExceptionHandler).

Since
4.2
registerHandlerMethodback to summary
protected void registerHandlerMethod(Object handler, Method method, T mapping)

Register a handler method and its unique mapping.

Parameters
handler:Object

the bean name of the handler or the handler instance

method:Method

the method to register

mapping:T

the mapping conditions associated with the handler method

Exceptions
IllegalStateException:
if another method was already registered under the same mapping
setApplicationContextback to summary
public void setApplicationContext(ApplicationContext applicationContext)

Implements org.springframework.context.ApplicationContextAware.setApplicationContext.

Doc from org.springframework.context.ApplicationContextAware.setApplicationContext.

Set the ApplicationContext that this object runs in. Normally this call will be used to initialize the object.

Invoked after population of normal bean properties but before an init callback such as org.springframework.beans.factory.InitializingBean#afterPropertiesSet() or a custom init-method. Invoked after ResourceLoaderAware#setResourceLoader, ApplicationEventPublisherAware#setApplicationEventPublisher and MessageSourceAware, if applicable.

Parameters
applicationContext:ApplicationContext

the ApplicationContext object to be used by this object

Annotations
@Override
setArgumentResolversback to summary
public void setArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)

Configure the complete list of supported argument types, effectively overriding the ones configured by default. This is an advanced option; for most use cases it should be sufficient to use setCustomArgumentResolvers.

setCustomArgumentResolversback to summary
public void setCustomArgumentResolvers(List<HandlerMethodArgumentResolver> customArgumentResolvers)

Sets the list of custom HandlerMethodArgumentResolvers that will be used after resolvers for supported argument type.

setCustomReturnValueHandlersback to summary
public void setCustomReturnValueHandlers(List<HandlerMethodReturnValueHandler> customReturnValueHandlers)

Set the list of custom HandlerMethodReturnValueHandlers that will be used after return value handlers for known types.

setDestinationPrefixesback to summary
public void setDestinationPrefixes(Collection<String> prefixes)

When this property is configured only messages to destinations matching one of the configured prefixes are eligible for handling. When there is a match the prefix is removed and only the remaining part of the destination is used for method-mapping purposes.

By default, no prefixes are configured in which case all messages are eligible for handling.

setReturnValueHandlersback to summary
public void setReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)

Configure the complete list of supported return value types, effectively overriding the ones configured by default. This is an advanced option; for most use cases it should be sufficient to use setCustomReturnValueHandlers.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
org.springframework.messaging.handler.invocation back to summary

private Class AbstractMethodMessageHandler.Match

extends Object
Class Inheritance
  • java.lang.Object
  • org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.Match

A thin wrapper around a matched HandlerMethod and its matched mapping for the purpose of comparing the best match with a comparator in the context of a message.

Field Summary

Modifier and TypeField and Description
private final HandlerMethod
private final T

Constructor Summary

AccessConstructor and Description
public
Match(T mapping, HandlerMethod handlerMethod)

Method Summary

Modifier and TypeMethod and Description
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

handlerMethodback to summary
private final HandlerMethod handlerMethod
mappingback to summary
private final T mapping

Constructor Detail

Matchback to summary
public Match(T mapping, HandlerMethod handlerMethod)

Method Detail

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
org.springframework.messaging.handler.invocation back to summary

private Class AbstractMethodMessageHandler.MatchComparator

extends Object
implements Comparator<AbstractMethodMessageHandler<T>.Match>
Class Inheritance
  • java.lang.Object
  • org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.MatchComparator
All Implemented Interfaces
java.util.Comparator

Field Summary

Modifier and TypeField and Description
private final Comparator<T>

Constructor Summary

AccessConstructor and Description
public
MatchComparator(Comparator<T> comparator)

Method Summary

Modifier and TypeMethod and Description
public int
compare(AbstractMethodMessageHandler<T>.Match
the first object to be compared.
match1
,
AbstractMethodMessageHandler<T>.Match
the second object to be compared.
match2
)

Implements java.util.Comparator.compare.

Compares its two arguments for order.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

comparatorback to summary
private final Comparator<T> comparator

Constructor Detail

MatchComparatorback to summary
public MatchComparator(Comparator<T> comparator)

Method Detail

compareback to summary
public int compare(AbstractMethodMessageHandler<T>.Match match1, AbstractMethodMessageHandler<T>.Match match2)

Implements java.util.Comparator.compare.

Doc from java.util.Comparator.compare.

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that signum(compare(x, y)) == -signum(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementor must ensure that compare(x, y)==0 implies that signum(compare(x, z))==signum(compare(y, z)) for all z.

Parameters
match1:AbstractMethodMessageHandler<T>.Match

the first object to be compared.

match2:AbstractMethodMessageHandler<T>.Match

the second object to be compared.

Returns:int

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

Annotations
@Override
org.springframework.messaging.handler.invocation back to summary

private Class AbstractMethodMessageHandler.ReturnValueListenableFutureCallback

extends Object
implements BiConsumer<Object, Throwable>
Class Inheritance
  • java.lang.Object
  • org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.ReturnValueListenableFutureCallback
All Implemented Interfaces
java.util.function.BiConsumer

Field Summary

Modifier and TypeField and Description
private final InvocableHandlerMethod
private final Message<?>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
accept(Object
the first input argument
result
,
Throwable
the second input argument
ex
)

Implements java.util.function.BiConsumer.accept.

Performs this operation on the given arguments.
private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

handlerMethodback to summary
private final InvocableHandlerMethod handlerMethod
messageback to summary
private final Message<?> message

Constructor Detail

ReturnValueListenableFutureCallbackback to summary
public ReturnValueListenableFutureCallback(InvocableHandlerMethod handlerMethod, Message<?> message)

Method Detail

acceptback to summary
public void accept(Object result, Throwable ex)

Implements java.util.function.BiConsumer.accept.

Doc from java.util.function.BiConsumer.accept.

Performs this operation on the given arguments.

Parameters
result:Object

the first input argument

ex:Throwable

the second input argument

Annotations
@Override
handleFailureback to summary
private void handleFailure(Throwable throwable)