public class org.jboss.resteasy.core.ResourceLocatorInvoker implements org.jboss.resteasy.core.ResourceInvoker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jboss.resteasy.core.ResourceLocatorInvoker
super_class: java.lang.Object
{
protected org.jboss.resteasy.spi.InjectorFactory injector;
descriptor: Lorg/jboss/resteasy/spi/InjectorFactory;
flags: (0x0004) ACC_PROTECTED
protected org.jboss.resteasy.spi.MethodInjector methodInjector;
descriptor: Lorg/jboss/resteasy/spi/MethodInjector;
flags: (0x0004) ACC_PROTECTED
protected org.jboss.resteasy.spi.ResourceFactory resource;
descriptor: Lorg/jboss/resteasy/spi/ResourceFactory;
flags: (0x0004) ACC_PROTECTED
protected org.jboss.resteasy.spi.ResteasyProviderFactory providerFactory;
descriptor: Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
flags: (0x0004) ACC_PROTECTED
protected org.jboss.resteasy.spi.metadata.ResourceLocator method;
descriptor: Lorg/jboss/resteasy/spi/metadata/ResourceLocator;
flags: (0x0004) ACC_PROTECTED
protected java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>, org.jboss.resteasy.core.LocatorRegistry> cachedSubresources;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Class<*>;Lorg/jboss/resteasy/core/LocatorRegistry;>;
public void <init>(org.jboss.resteasy.spi.ResourceFactory, org.jboss.resteasy.spi.InjectorFactory, org.jboss.resteasy.spi.ResteasyProviderFactory, org.jboss.resteasy.spi.metadata.ResourceLocator);
descriptor: (Lorg/jboss/resteasy/spi/ResourceFactory;Lorg/jboss/resteasy/spi/InjectorFactory;Lorg/jboss/resteasy/spi/ResteasyProviderFactory;Lorg/jboss/resteasy/spi/metadata/ResourceLocator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.cachedSubresources:Ljava/util/concurrent/ConcurrentHashMap;
2: aload 0
aload 1
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.resource:Lorg/jboss/resteasy/spi/ResourceFactory;
3: aload 0
aload 2
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.injector:Lorg/jboss/resteasy/spi/InjectorFactory;
4: aload 0
aload 3
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.providerFactory:Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
5: aload 0
aload 4
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.method:Lorg/jboss/resteasy/spi/metadata/ResourceLocator;
6: aload 0
aload 2
aload 4
aload 3
invokeinterface org.jboss.resteasy.spi.InjectorFactory.createMethodInjector:(Lorg/jboss/resteasy/spi/metadata/ResourceLocator;Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)Lorg/jboss/resteasy/spi/MethodInjector;
putfield org.jboss.resteasy.core.ResourceLocatorInvoker.methodInjector:Lorg/jboss/resteasy/spi/MethodInjector;
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 8 1 resource Lorg/jboss/resteasy/spi/ResourceFactory;
0 8 2 injector Lorg/jboss/resteasy/spi/InjectorFactory;
0 8 3 providerFactory Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
0 8 4 locator Lorg/jboss/resteasy/spi/metadata/ResourceLocator;
MethodParameters:
Name Flags
resource
injector
providerFactory
locator
protected java.lang.Object createResource(org.jboss.resteasy.spi.HttpRequest, org.jboss.resteasy.spi.HttpResponse);
descriptor: (Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.resource:Lorg/jboss/resteasy/spi/ResourceFactory;
aload 1
aload 2
aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.providerFactory:Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
invokeinterface org.jboss.resteasy.spi.ResourceFactory.createResource:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)Ljava/lang/Object;
astore 3
start local 3 1: aload 0
aload 1
aload 2
aload 3
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.createResource:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 2 1 request Lorg/jboss/resteasy/spi/HttpRequest;
0 2 2 response Lorg/jboss/resteasy/spi/HttpResponse;
1 2 3 resource Ljava/lang/Object;
MethodParameters:
Name Flags
request
response
protected java.lang.Object createResource(org.jboss.resteasy.spi.HttpRequest, org.jboss.resteasy.spi.HttpResponse, java.lang.Object);
descriptor: (Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.jboss.resteasy.spi.HttpRequest.getUri:()Lorg/jboss/resteasy/spi/ResteasyUriInfo;
astore 4
start local 4 1: iconst_0
anewarray java.lang.Object
astore 5
start local 5 2: aload 1
ldc "registry.matching.exception"
invokeinterface org.jboss.resteasy.spi.HttpRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.RuntimeException
astore 6
start local 6 3: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.methodInjector:Lorg/jboss/resteasy/spi/MethodInjector;
aload 1
aload 2
invokeinterface org.jboss.resteasy.spi.MethodInjector.injectArguments:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;)[Ljava/lang/Object;
astore 5
4: goto 8
5: StackMap locals: org.jboss.resteasy.core.ResourceLocatorInvoker org.jboss.resteasy.spi.HttpRequest org.jboss.resteasy.spi.HttpResponse java.lang.Object org.jboss.resteasy.spi.ResteasyUriInfo java.lang.Object[] java.lang.RuntimeException
StackMap stack: javax.ws.rs.NotFoundException
astore 7
start local 7 6: aload 6
ifnull 7
aload 6
athrow
7: StackMap locals: javax.ws.rs.NotFoundException
StackMap stack:
aload 7
athrow
end local 7 8: StackMap locals:
StackMap stack:
aload 4
aload 3
invokevirtual org.jboss.resteasy.spi.ResteasyUriInfo.pushCurrentResource:(Ljava/lang/Object;)V
9: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.method:Lorg/jboss/resteasy/spi/metadata/ResourceLocator;
invokeinterface org.jboss.resteasy.spi.metadata.ResourceLocator.getMethod:()Ljava/lang/reflect/Method;
aload 3
aload 5
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 10: aload 7
instanceof java.lang.Class
ifeq 12
11: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.providerFactory:Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
aload 7
checkcast java.lang.Class
invokevirtual org.jboss.resteasy.spi.ResteasyProviderFactory.injectedInstance:(Ljava/lang/Class;)Ljava/lang/Object;
astore 7
12: StackMap locals: java.lang.Object
StackMap stack:
aload 7
13: areturn
end local 7 14: StackMap locals: org.jboss.resteasy.core.ResourceLocatorInvoker org.jboss.resteasy.spi.HttpRequest org.jboss.resteasy.spi.HttpResponse java.lang.Object org.jboss.resteasy.spi.ResteasyUriInfo java.lang.Object[] java.lang.RuntimeException
StackMap stack: java.lang.IllegalAccessException
astore 7
start local 7 15: new org.jboss.resteasy.spi.InternalServerErrorException
dup
aload 7
invokespecial org.jboss.resteasy.spi.InternalServerErrorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 16: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 7
start local 7 17: new org.jboss.resteasy.spi.ApplicationException
dup
aload 7
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
invokespecial org.jboss.resteasy.spi.ApplicationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 18: StackMap locals:
StackMap stack: java.lang.SecurityException
astore 7
start local 7 19: new org.jboss.resteasy.spi.ApplicationException
dup
aload 7
invokevirtual java.lang.SecurityException.getCause:()Ljava/lang/Throwable;
invokespecial org.jboss.resteasy.spi.ApplicationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 20 1 request Lorg/jboss/resteasy/spi/HttpRequest;
0 20 2 response Lorg/jboss/resteasy/spi/HttpResponse;
0 20 3 locator Ljava/lang/Object;
1 20 4 uriInfo Lorg/jboss/resteasy/spi/ResteasyUriInfo;
2 20 5 args [Ljava/lang/Object;
3 20 6 lastException Ljava/lang/RuntimeException;
6 8 7 failure Ljavax/ws/rs/NotFoundException;
10 14 7 subResource Ljava/lang/Object;
15 16 7 e Ljava/lang/IllegalAccessException;
17 18 7 e Ljava/lang/reflect/InvocationTargetException;
19 20 7 e Ljava/lang/SecurityException;
Exception table:
from to target type
3 4 5 Class javax.ws.rs.NotFoundException
8 13 14 Class java.lang.IllegalAccessException
8 13 16 Class java.lang.reflect.InvocationTargetException
8 13 18 Class java.lang.SecurityException
MethodParameters:
Name Flags
request
response
locator
public java.lang.reflect.Method getMethod();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.method:Lorg/jboss/resteasy/spi/metadata/ResourceLocator;
invokeinterface org.jboss.resteasy.spi.metadata.ResourceLocator.getMethod:()Ljava/lang/reflect/Method;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
public org.jboss.resteasy.specimpl.BuiltResponse invoke(org.jboss.resteasy.spi.HttpRequest, org.jboss.resteasy.spi.HttpResponse);
descriptor: (Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.createResource:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;)Ljava/lang/Object;
astore 3
start local 3 1: aload 0
aload 1
aload 2
aload 3
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 2 1 request Lorg/jboss/resteasy/spi/HttpRequest;
0 2 2 response Lorg/jboss/resteasy/spi/HttpResponse;
1 2 3 target Ljava/lang/Object;
MethodParameters:
Name Flags
request
response
public org.jboss.resteasy.specimpl.BuiltResponse invoke(org.jboss.resteasy.spi.HttpRequest, org.jboss.resteasy.spi.HttpResponse, java.lang.Object);
descriptor: (Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.createResource:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 1: aload 0
aload 1
aload 2
aload 4
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 2 1 request Lorg/jboss/resteasy/spi/HttpRequest;
0 2 2 response Lorg/jboss/resteasy/spi/HttpResponse;
0 2 3 locator Ljava/lang/Object;
1 2 4 target Ljava/lang/Object;
MethodParameters:
Name Flags
request
response
locator
protected org.jboss.resteasy.specimpl.BuiltResponse invokeOnTargetObject(org.jboss.resteasy.spi.HttpRequest, org.jboss.resteasy.spi.HttpResponse, java.lang.Object);
descriptor: (Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 3
1: new javax.ws.rs.NotFoundException
dup
getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.Messages.MESSAGES:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/Messages;
aload 1
invokeinterface org.jboss.resteasy.spi.HttpRequest.getUri:()Lorg/jboss/resteasy/spi/ResteasyUriInfo;
invokevirtual org.jboss.resteasy.spi.ResteasyUriInfo.getAbsolutePath:()Ljava/net/URI;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.Messages.nullSubresource:(Ljava/net/URI;)Ljava/lang/String;
invokespecial javax.ws.rs.NotFoundException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 2: aload 4
athrow
end local 4 3: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 4
start local 4 4: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.cachedSubresources:Ljava/util/concurrent/ConcurrentHashMap;
aload 4
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jboss.resteasy.core.LocatorRegistry
astore 5
start local 5 5: aload 5
ifnonnull 11
6: aload 4
invokestatic org.jboss.resteasy.util.GetRestful.isSubResourceClass:(Ljava/lang/Class;)Z
ifne 9
7: getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.Messages.MESSAGES:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/Messages;
aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.Messages.subresourceHasNoJaxRsAnnotations:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 8: new org.jboss.resteasy.spi.InternalServerErrorException
dup
aload 6
invokespecial org.jboss.resteasy.spi.InternalServerErrorException.<init>:(Ljava/lang/String;)V
athrow
end local 6 9: StackMap locals: java.lang.Class org.jboss.resteasy.core.LocatorRegistry
StackMap stack:
new org.jboss.resteasy.core.LocatorRegistry
dup
aload 4
aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.providerFactory:Lorg/jboss/resteasy/spi/ResteasyProviderFactory;
invokespecial org.jboss.resteasy.core.LocatorRegistry.<init>:(Ljava/lang/Class;Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)V
astore 5
10: aload 0
getfield org.jboss.resteasy.core.ResourceLocatorInvoker.cachedSubresources:Ljava/util/concurrent/ConcurrentHashMap;
aload 4
aload 5
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
aload 5
aload 1
invokevirtual org.jboss.resteasy.core.LocatorRegistry.getResourceInvoker:(Lorg/jboss/resteasy/spi/HttpRequest;)Lorg/jboss/resteasy/core/ResourceInvoker;
astore 6
start local 6 12: aload 6
instanceof org.jboss.resteasy.core.ResourceLocatorInvoker
ifeq 15
13: aload 6
checkcast org.jboss.resteasy.core.ResourceLocatorInvoker
astore 7
start local 7 14: aload 7
aload 1
aload 2
aload 3
invokevirtual org.jboss.resteasy.core.ResourceLocatorInvoker.invoke:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
areturn
end local 7 15: StackMap locals: org.jboss.resteasy.core.ResourceInvoker
StackMap stack:
aload 6
checkcast org.jboss.resteasy.core.ResourceMethodInvoker
astore 7
start local 7 16: aload 7
aload 1
aload 2
aload 3
invokevirtual org.jboss.resteasy.core.ResourceMethodInvoker.invoke:(Lorg/jboss/resteasy/spi/HttpRequest;Lorg/jboss/resteasy/spi/HttpResponse;Ljava/lang/Object;)Lorg/jboss/resteasy/specimpl/BuiltResponse;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
0 17 1 request Lorg/jboss/resteasy/spi/HttpRequest;
0 17 2 response Lorg/jboss/resteasy/spi/HttpResponse;
0 17 3 target Ljava/lang/Object;
2 3 4 notFound Ljavax/ws/rs/NotFoundException;
4 17 4 clazz Ljava/lang/Class<+Ljava/lang/Object;>;
5 17 5 registry Lorg/jboss/resteasy/core/LocatorRegistry;
8 9 6 msg Ljava/lang/String;
12 17 6 invoker Lorg/jboss/resteasy/core/ResourceInvoker;
14 15 7 locator Lorg/jboss/resteasy/core/ResourceLocatorInvoker;
16 17 7 method Lorg/jboss/resteasy/core/ResourceMethodInvoker;
MethodParameters:
Name Flags
request
response
target
}
SourceFile: "ResourceLocatorInvoker.java"