public abstract class org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler extends java.lang.Object implements org.springframework.messaging.MessageHandler, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
{
private static final java.lang.String SCOPED_TARGET_NAME_PREFIX;
protected final org.apache.commons.logging.Log logger;
private final java.util.List destinationPrefixes;
private final java.util.List customArgumentResolvers;
private final java.util.List customReturnValueHandlers;
private final org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers;
private final org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers;
private org.springframework.context.ApplicationContext applicationContext;
private final java.util.Map handlerMethods;
private final org.springframework.util.MultiValueMap destinationLookup;
private final java.util.Map exceptionHandlerCache;
private final java.util.Map exceptionHandlerAdviceCache;
public void <init>()
{
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v;
java.util.concurrent.ConcurrentHashMap v;
java.util.ArrayList v, v, v;
java.util.LinkedHashMap v, v;
java.lang.Class v;
org.apache.commons.logging.Log v;
org.springframework.util.LinkedMultiValueMap v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(4);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customArgumentResolvers> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(4);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customReturnValueHandlers> = v;
v = new org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
specialinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: void <init>()>();
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers> = v;
v = new org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite;
specialinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: void <init>()>();
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(64);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods> = v;
v = new org.springframework.util.LinkedMultiValueMap;
specialinvoke v.<org.springframework.util.LinkedMultiValueMap: void <init>(int)>(64);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.util.MultiValueMap destinationLookup> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerCache> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(64);
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerAdviceCache> = v;
return;
}
public void setDestinationPrefixes(java.util.Collection)
{
java.util.Iterator v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Collection v;
java.util.List v, v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.Collection;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes>;
interfaceinvoke v.<java.util.List: void clear()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return;
}
public java.util.Collection getDestinationPrefixes()
{
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes>;
return v;
}
public void setCustomArgumentResolvers(java.util.List)
{
java.util.List v, v, v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.List;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customArgumentResolvers>;
interfaceinvoke v.<java.util.List: void clear()>();
if v == null goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customArgumentResolvers>;
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
return;
}
public java.util.List getCustomArgumentResolvers()
{
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customArgumentResolvers>;
return v;
}
public void setCustomReturnValueHandlers(java.util.List)
{
java.util.List v, v, v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.List;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customReturnValueHandlers>;
interfaceinvoke v.<java.util.List: void clear()>();
if v == null goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customReturnValueHandlers>;
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
return;
}
public java.util.List getCustomReturnValueHandlers()
{
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List customReturnValueHandlers>;
return v;
}
public void setArgumentResolvers(java.util.List)
{
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v, v;
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.List;
if v != null goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: void clear()>();
return;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite addResolvers(java.util.List)>(v);
return;
}
public java.util.List getArgumentResolvers()
{
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v;
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: java.util.List getResolvers()>();
return v;
}
public void setReturnValueHandlers(java.util.List)
{
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.List;
if v != null goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: void clear()>();
return;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite addHandlers(java.util.List)>(v);
return;
}
public java.util.List getReturnValueHandlers()
{
java.util.List v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: java.util.List getReturnValueHandlers()>();
return v;
}
public void setApplicationContext(org.springframework.context.ApplicationContext)
{
org.springframework.context.ApplicationContext v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.context.ApplicationContext;
v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext applicationContext> = v;
return;
}
public org.springframework.context.ApplicationContext getApplicationContext()
{
org.springframework.context.ApplicationContext v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext applicationContext>;
return v;
}
public void afterPropertiesSet()
{
java.lang.Throwable v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.lang.String[] v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v, v;
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v, v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v, v;
org.springframework.context.ApplicationContext v, v;
java.util.List v, v, v, v;
java.lang.Class v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: java.util.List getResolvers()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List initArgumentResolvers()>();
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite addResolvers(java.util.List)>(v);
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: java.util.List getReturnValueHandlers()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List initReturnValueHandlers()>();
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite addHandlers(java.util.List)>(v);
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext applicationContext>;
v = interfaceinvoke v.<org.springframework.context.ApplicationContext: java.lang.String[] getBeanNamesForType(java.lang.Class)>(class "Ljava/lang/Object;");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("scopedTarget.");
if v != 0 goto label;
v = null;
label:
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext getApplicationContext()>();
v = interfaceinvoke v.<org.springframework.context.ApplicationContext: java.lang.Class getType(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not resolve target class for bean with name \'\u0001\'");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>(v, v);
label:
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: boolean isHandler(java.lang.Class)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void detectHandlerMethods(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected abstract java.util.List initArgumentResolvers();
protected abstract java.util.List initReturnValueHandlers();
protected abstract boolean isHandler(java.lang.Class);
protected final void detectHandlerMethods(java.lang.Object)
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Map v;
int v;
java.lang.String v;
boolean v, v, v;
java.util.Iterator v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$1 v;
java.util.Set v;
org.springframework.context.ApplicationContext v;
java.lang.Class v, v;
java.lang.Object v, v, v, v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.lang.Object;
v = v instanceof java.lang.String;
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext applicationContext>;
v = interfaceinvoke v.<org.springframework.context.ApplicationContext: java.lang.Class getType(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
label:
v = staticinvoke <org.springframework.util.ClassUtils: java.lang.Class getUserClass(java.lang.Class)>(v);
v = new org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$1;
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$1: void <init>(org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler,java.lang.Class)>(v, v);
v = staticinvoke <org.springframework.core.MethodIntrospector: java.util.Map selectMethods(java.lang.Class,org.springframework.core.MethodIntrospector$MetadataLookup)>(v, v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<java.util.Map: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.Class,java.util.Map)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u message handler methods found on \u0001: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void registerHandlerMethod(java.lang.Object,java.lang.reflect.Method,java.lang.Object)>(v, v, v);
goto label;
label:
return;
}
protected abstract java.lang.Object getMappingForMethod(java.lang.reflect.Method, java.lang.Class);
protected void registerHandlerMethod(java.lang.Object, java.lang.reflect.Method, java.lang.Object)
{
java.lang.IllegalStateException v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Map v, v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v, v, v;
java.util.Iterator v;
java.util.Set v;
org.springframework.util.MultiValueMap v;
org.springframework.messaging.handler.HandlerMethod v;
java.lang.Object v, v, v, v, v, v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Object;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Mapping must not be null");
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.HandlerMethod createHandlerMethod(java.lang.Object,java.lang.reflect.Method)>(v, v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.Object getBean()>();
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.Object getBean()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,org.springframework.messaging.handler.HandlerMethod,java.lang.Object,java.lang.Object,org.springframework.messaging.handler.HandlerMethod)>(v, v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ambiguous mapping found. Cannot map \'\u0001\' bean method \n\u0001\nto \u0001: There is already \'\u0001\' bean method\n\u mapped.");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,org.springframework.messaging.handler.HandlerMethod)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Mapped \"\u0001\" onto \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Set getDirectLookupDestinations(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.util.MultiValueMap destinationLookup>;
interfaceinvoke v.<org.springframework.util.MultiValueMap: void add(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return;
}
protected org.springframework.messaging.handler.HandlerMethod createHandlerMethod(java.lang.Object, java.lang.reflect.Method)
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.beans.factory.config.AutowireCapableBeanFactory v;
org.springframework.context.ApplicationContext v;
org.springframework.messaging.handler.HandlerMethod v, v, v;
java.lang.Object v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
v = v instanceof java.lang.String;
if v == 0 goto label;
v = new org.springframework.messaging.handler.HandlerMethod;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.context.ApplicationContext applicationContext>;
v = interfaceinvoke v.<org.springframework.context.ApplicationContext: org.springframework.beans.factory.config.AutowireCapableBeanFactory getAutowireCapableBeanFactory()>();
specialinvoke v.<org.springframework.messaging.handler.HandlerMethod: void <init>(java.lang.String,org.springframework.beans.factory.BeanFactory,java.lang.reflect.Method)>(v, v, v);
v = v;
goto label;
label:
v = new org.springframework.messaging.handler.HandlerMethod;
specialinvoke v.<org.springframework.messaging.handler.HandlerMethod: void <init>(java.lang.Object,java.lang.reflect.Method)>(v, v);
v = v;
label:
return v;
}
protected abstract java.util.Set getDirectLookupDestinations(java.lang.Object);
protected void registerExceptionHandlerAdvice(org.springframework.messaging.handler.MessagingAdviceBean, org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver)
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Map v;
org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver v;
org.springframework.messaging.handler.MessagingAdviceBean v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.messaging.handler.MessagingAdviceBean;
v := @parameter: org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerAdviceCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public java.util.Map getHandlerMethods()
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Map v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
}
public void handleMessage(org.springframework.messaging.Message) throws org.springframework.messaging.MessagingException
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.messaging.MessageHeaders v;
java.lang.Object v, v;
org.apache.commons.logging.Log v, v;
org.springframework.messaging.Message v, v;
java.lang.String v, v, v, v;
boolean v;
org.springframework.messaging.support.MessageHeaderAccessor v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.messaging.Message;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.lang.String getDestination(org.springframework.messaging.Message)>(v);
if v != null goto label;
return;
label:
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.lang.String getLookupDestination(java.lang.String)>(v);
if v != null goto label;
return;
label:
v = staticinvoke <org.springframework.messaging.support.MessageHeaderAccessor: org.springframework.messaging.support.MessageHeaderAccessor getMutableAccessor(org.springframework.messaging.Message)>(v);
virtualinvoke v.<org.springframework.messaging.support.MessageHeaderAccessor: void setHeader(java.lang.String,java.lang.Object)>("lookupDestination", v);
virtualinvoke v.<org.springframework.messaging.support.MessageHeaderAccessor: void setLeaveMutable(boolean)>(1);
v = interfaceinvoke v.<org.springframework.messaging.Message: java.lang.Object getPayload()>();
v = virtualinvoke v.<org.springframework.messaging.support.MessageHeaderAccessor: org.springframework.messaging.MessageHeaders getMessageHeaders()>();
v = staticinvoke <org.springframework.messaging.support.MessageBuilder: org.springframework.messaging.Message createMessage(java.lang.Object,org.springframework.messaging.MessageHeaders)>(v, v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.springframework.messaging.Message: java.lang.Object getPayload()>();
v = virtualinvoke v.<org.springframework.messaging.support.MessageHeaderAccessor: java.lang.String getShortLogMessage(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Searching methods to handle \u, lookupDestination=\'\u0001\'");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void handleMessageInternal(org.springframework.messaging.Message,java.lang.String)>(v, v);
virtualinvoke v.<org.springframework.messaging.support.MessageHeaderAccessor: void setImmutable()>();
return;
}
protected abstract java.lang.String getDestination(org.springframework.messaging.Message);
protected java.lang.String getLookupDestination(java.lang.String)
{
java.util.Iterator v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.List v, v;
int v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes>;
v = staticinvoke <org.springframework.util.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v == 0 goto label;
return v;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.List destinationPrefixes>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
return v;
label:
return null;
}
protected void handleMessageInternal(org.springframework.messaging.Message, java.lang.String)
{
java.lang.IllegalStateException v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.ArrayList v;
java.util.Map v, v;
int v, v, v;
org.springframework.messaging.Message v;
java.lang.String v, v, v;
java.lang.reflect.Method v, v;
boolean v, v, v;
java.util.Set v, v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$MatchComparator v;
org.springframework.util.MultiValueMap v;
org.springframework.messaging.handler.HandlerMethod v, v, v;
java.lang.Object v, v, v, v;
org.apache.commons.logging.Log v, v;
java.util.Comparator v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.messaging.Message;
v := @parameter: java.lang.String;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.util.MultiValueMap destinationLookup>;
v = interfaceinvoke v.<org.springframework.util.MultiValueMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void addMatchesToCollection(java.util.Collection,org.springframework.messaging.Message,java.util.List)>(v, v, v);
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void addMatchesToCollection(java.util.Collection,org.springframework.messaging.Message,java.util.List)>(v, v, v);
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void handleNoMatch(java.util.Set,java.lang.String,org.springframework.messaging.Message)>(v, v, v);
return;
label:
v = new org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$MatchComparator;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Comparator getMappingComparator(org.springframework.messaging.Message)>(v);
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$MatchComparator: void <init>(org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler,java.util.Comparator)>(v, v);
staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isTraceEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.util.ArrayList)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Found \u handler methods: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 1 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match: org.springframework.messaging.handler.HandlerMethod handlerMethod>;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.reflect.Method getMethod()>();
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match: org.springframework.messaging.handler.HandlerMethod handlerMethod>;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.reflect.Method getMethod()>();
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.reflect.Method,java.lang.reflect.Method)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Ambiguous handler methods mapped for destination \'\u0001\': {\u, \u0001}");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match: java.lang.Object mapping>;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match: org.springframework.messaging.handler.HandlerMethod handlerMethod>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void handleMatch(java.lang.Object,org.springframework.messaging.handler.HandlerMethod,java.lang.String,org.springframework.messaging.Message)>(v, v, v, v);
return;
}
private void addMatchesToCollection(java.util.Collection, org.springframework.messaging.Message, java.util.List)
{
java.util.Iterator v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Collection v;
java.util.List v;
java.util.Map v;
java.lang.Object v, v, v;
org.springframework.messaging.Message v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match v;
boolean v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.Collection;
v := @parameter: org.springframework.messaging.Message;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.lang.Object getMatchingMapping(java.lang.Object,org.springframework.messaging.Message)>(v, v);
if v == null goto label;
v = new org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map handlerMethods>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$Match: void <init>(org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler,java.lang.Object,org.springframework.messaging.handler.HandlerMethod)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return;
}
protected abstract java.lang.Object getMatchingMapping(java.lang.Object, org.springframework.messaging.Message);
protected void handleNoMatch(java.util.Set, java.lang.String, org.springframework.messaging.Message)
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Set v;
org.apache.commons.logging.Log v;
org.springframework.messaging.Message v;
java.lang.String v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.util.Set;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("No matching message handler methods.");
return;
}
protected abstract java.util.Comparator getMappingComparator(org.springframework.messaging.Message);
protected void handleMatch(java.lang.Object, org.springframework.messaging.handler.HandlerMethod, java.lang.String, org.springframework.messaging.Message)
{
java.lang.Throwable v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$ReturnValueListenableFutureCallback v;
org.springframework.messaging.handler.invocation.InvocableHandlerMethod v;
java.lang.Object[] v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.util.concurrent.ListenableFuture v;
org.springframework.messaging.MessageHandlingException v;
org.springframework.core.MethodParameter v;
org.springframework.messaging.Message v;
java.lang.String v, v, v;
boolean v, v;
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v, v, v;
java.lang.Exception v;
org.springframework.messaging.handler.HandlerMethod v, v;
java.lang.Class v, v;
java.lang.Object v, v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: java.lang.Object;
v := @parameter: org.springframework.messaging.handler.HandlerMethod;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.String getShortLogMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invoking \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: org.springframework.messaging.handler.HandlerMethod createWithResolvedBean()>();
v = new org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
specialinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: void <init>(org.springframework.messaging.handler.HandlerMethod)>(v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: void setMessageMethodArgumentResolvers(org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite)>(v);
label:
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: java.lang.Object invoke(org.springframework.messaging.Message,java.lang.Object[])>(v, v);
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: org.springframework.core.MethodParameter getReturnType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
v = virtualinvoke v.<org.springframework.core.MethodParameter: java.lang.Class getParameterType()>();
if v != v goto label;
label:
return;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: boolean isAsyncReturnValue(java.lang.Object,org.springframework.core.MethodParameter)>(v, v);
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: org.springframework.util.concurrent.ListenableFuture toListenableFuture(java.lang.Object,org.springframework.core.MethodParameter)>(v, v);
if v == null goto label;
v = new org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$ReturnValueListenableFutureCallback;
specialinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler$ReturnValueListenableFutureCallback: void <init>(org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler,org.springframework.messaging.handler.invocation.InvocableHandlerMethod,org.springframework.messaging.Message)>(v, v, v);
interfaceinvoke v.<org.springframework.util.concurrent.ListenableFuture: void addCallback(org.springframework.util.concurrent.ListenableFutureCallback)>(v);
goto label;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: void handleReturnValue(java.lang.Object,org.springframework.core.MethodParameter,org.springframework.messaging.Message)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void processHandlerMethodException(org.springframework.messaging.handler.HandlerMethod,java.lang.Exception,org.springframework.messaging.Message)>(v, v, v);
goto label;
label:
v := @caughtexception;
v = new org.springframework.messaging.MessageHandlingException;
specialinvoke v.<org.springframework.messaging.MessageHandlingException: void <init>(org.springframework.messaging.Message,java.lang.String,java.lang.Throwable)>(v, "Unexpected handler method invocation error", v);
virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: void processHandlerMethodException(org.springframework.messaging.handler.HandlerMethod,java.lang.Exception,org.springframework.messaging.Message)>(v, v, v);
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void processHandlerMethodException(org.springframework.messaging.handler.HandlerMethod, java.lang.Exception, org.springframework.messaging.Message)
{
java.lang.Throwable v, v;
org.springframework.messaging.handler.invocation.InvocableHandlerMethod v;
java.lang.Object[] v, v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
org.springframework.core.MethodParameter v;
org.springframework.messaging.Message v;
java.lang.String v, v;
boolean v;
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite v;
org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite v;
java.lang.Exception v;
org.springframework.messaging.handler.HandlerMethod v;
java.lang.Class v, v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.messaging.handler.HandlerMethod;
v := @parameter: java.lang.Exception;
v := @parameter: org.springframework.messaging.Message;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.InvocableHandlerMethod getExceptionHandlerMethod(org.springframework.messaging.handler.HandlerMethod,java.lang.Exception)>(v, v);
if v != null goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>("Unhandled exception from message handler method", v);
return;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite argumentResolvers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: void setMessageMethodArgumentResolvers(org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite)>(v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: java.lang.String getShortLogMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invoking \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<java.lang.Exception: java.lang.Throwable getCause()>();
if v == null goto label;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: java.lang.Object invoke(org.springframework.messaging.Message,java.lang.Object[])>(v, v);
goto label;
label:
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: java.lang.Object invoke(org.springframework.messaging.Message,java.lang.Object[])>(v, v);
label:
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: org.springframework.core.MethodParameter getReturnType()>();
v = <java.lang.Void: java.lang.Class TYPE>;
v = virtualinvoke v.<org.springframework.core.MethodParameter: java.lang.Class getParameterType()>();
if v != v goto label;
label:
return;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite returnValueHandlers>;
virtualinvoke v.<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandlerComposite: void handleReturnValue(java.lang.Object,org.springframework.core.MethodParameter,org.springframework.messaging.Message)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>("Error while processing handler method exception", v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected org.springframework.messaging.handler.invocation.InvocableHandlerMethod getExceptionHandlerMethod(org.springframework.messaging.handler.HandlerMethod, java.lang.Exception)
{
org.springframework.messaging.handler.invocation.InvocableHandlerMethod v, v;
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Map v, v, v, v;
java.lang.String v, v;
java.lang.reflect.Method v, v;
boolean v, v, v;
java.util.Iterator v;
java.util.Set v;
java.lang.Exception v;
org.springframework.messaging.handler.HandlerMethod v;
java.lang.Class v, v;
java.lang.Object v, v, v, v, v;
org.apache.commons.logging.Log v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v := @parameter: org.springframework.messaging.handler.HandlerMethod;
v := @parameter: java.lang.Exception;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Searching methods to handle \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.Class getBeanType()>();
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(java.lang.Class)>(v);
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver: java.lang.reflect.Method resolveMethod(java.lang.Exception)>(v);
if v == null goto label;
v = new org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
v = virtualinvoke v.<org.springframework.messaging.handler.HandlerMethod: java.lang.Object getBean()>();
specialinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: void <init>(java.lang.Object,java.lang.reflect.Method)>(v, v);
return v;
label:
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerAdviceCache>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.springframework.messaging.handler.MessagingAdviceBean: boolean isApplicableToBeanType(java.lang.Class)>(v);
if v == 0 goto label;
v = v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Map exceptionHandlerAdviceCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver: java.lang.reflect.Method resolveMethod(java.lang.Exception)>(v);
if v == null goto label;
v = new org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
v = interfaceinvoke v.<org.springframework.messaging.handler.MessagingAdviceBean: java.lang.Object resolveBean()>();
specialinvoke v.<org.springframework.messaging.handler.invocation.InvocableHandlerMethod: void <init>(java.lang.Object,java.lang.reflect.Method)>(v, v);
return v;
label:
return null;
}
protected abstract org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(java.lang.Class);
public java.lang.String toString()
{
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler v;
java.util.Collection v;
java.lang.Class v;
java.lang.String v, v;
v := @this: org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = virtualinvoke v.<org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler: java.util.Collection getDestinationPrefixes()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.util.Collection)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u[prefixes=\u]");
return v;
}
}