public class org.glassfish.grizzly.http.server.HttpHandlerChain extends org.glassfish.grizzly.http.server.HttpHandler implements org.glassfish.grizzly.http.server.jmxbase.JmxEventListener
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.glassfish.grizzly.http.server.HttpHandlerChain
super_class: org.glassfish.grizzly.http.server.HttpHandler
{
private static final java.util.logging.Logger LOGGER;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<org.glassfish.grizzly.http.server.HttpHandlerRegistration, org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater> ROOT_URLS;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;Lorg/glassfish/grizzly/http/server/HttpHandlerChain$PathUpdater;>;
private final org.glassfish.grizzly.http.server.HttpHandlerChain$FullUrlPathResolver fullUrlPathResolver;
descriptor: Lorg/glassfish/grizzly/http/server/HttpHandlerChain$FullUrlPathResolver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentMap<java.lang.String, org.glassfish.grizzly.http.server.HttpHandler> handlersByName;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lorg/glassfish/grizzly/http/server/HttpHandler;>;
private final java.util.concurrent.locks.ReentrantReadWriteLock mapperUpdateLock;
descriptor: Ljava/util/concurrent/locks/ReentrantReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentMap<org.glassfish.grizzly.http.server.HttpHandler, org.glassfish.grizzly.http.server.HttpHandlerRegistration[]> handlers;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Lorg/glassfish/grizzly/http/server/HttpHandler;[Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;>;
private final java.util.concurrent.ConcurrentMap<org.glassfish.grizzly.http.server.HttpHandler, java.lang.Object> monitors;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Lorg/glassfish/grizzly/http/server/HttpHandler;Ljava/lang/Object;>;
private int handlersCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler rootHttpHandler;
descriptor: Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final org.glassfish.grizzly.http.server.util.Mapper mapper;
descriptor: Lorg/glassfish/grizzly/http/server/util/Mapper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.glassfish.grizzly.http.server.util.DispatcherHelper dispatchHelper;
descriptor: Lorg/glassfish/grizzly/http/server/util/DispatcherHelper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.lang.String LOCAL_HOST;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "localhost"
private boolean started;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final org.glassfish.grizzly.http.server.HttpServer httpServer;
descriptor: Lorg/glassfish/grizzly/http/server/HttpServer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean isRootConfigured;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
putstatic org.glassfish.grizzly.http.server.HttpHandlerChain.LOGGER:Ljava/util/logging/Logger;
1: new java.util.HashMap
dup
iconst_3
invokespecial java.util.HashMap.<init>:(I)V
putstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
2: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
ldc ""
invokestatic org.glassfish.grizzly.http.server.HttpHandlerRegistration.fromString:(Ljava/lang/String;)Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
new org.glassfish.grizzly.http.server.HttpHandlerChain$EmptyPathUpdater
dup
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$EmptyPathUpdater.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
ldc "/"
invokestatic org.glassfish.grizzly.http.server.HttpHandlerRegistration.fromString:(Ljava/lang/String;)Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
new org.glassfish.grizzly.http.server.HttpHandlerChain$SlashPathUpdater
dup
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$SlashPathUpdater.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
ldc "/*"
invokestatic org.glassfish.grizzly.http.server.HttpHandlerRegistration.fromString:(Ljava/lang/String;)Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
new org.glassfish.grizzly.http.server.HttpHandlerChain$SlashStarPathUpdater
dup
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$SlashStarPathUpdater.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.glassfish.grizzly.http.server.HttpServer);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpServer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.glassfish.grizzly.http.server.HttpHandler.<init>:()V
1: aload 0
2: new org.glassfish.grizzly.http.server.HttpHandlerChain$FullUrlPathResolver
dup
aload 0
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$FullUrlPathResolver.<init>:(Lorg/glassfish/grizzly/http/server/HttpHandler;)V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.fullUrlPathResolver:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$FullUrlPathResolver;
3: aload 0
4: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersByName:Ljava/util/concurrent/ConcurrentMap;
5: aload 0
6: new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
7: aload 0
8: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
9: aload 0
10: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.monitors:Ljava/util/concurrent/ConcurrentMap;
11: aload 0
iconst_0
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.isRootConfigured:Z
12: aload 0
aload 1
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.httpServer:Lorg/glassfish/grizzly/http/server/HttpServer;
13: aload 0
new org.glassfish.grizzly.http.server.util.Mapper
dup
invokespecial org.glassfish.grizzly.http.server.util.Mapper.<init>:()V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
14: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
invokevirtual org.glassfish.grizzly.http.server.util.Mapper.setDefaultHostName:(Ljava/lang/String;)V
15: aload 0
new org.glassfish.grizzly.http.server.HttpHandlerChain$DispatchHelperImpl
dup
aload 0
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$DispatchHelperImpl.<init>:(Lorg/glassfish/grizzly/http/server/HttpHandlerChain;)V
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.dispatchHelper:Lorg/glassfish/grizzly/http/server/util/DispatcherHelper;
16: aload 0
iconst_0
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.setDecodeUrl:(Z)V
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 18 1 httpServer Lorg/glassfish/grizzly/http/server/HttpServer;
MethodParameters:
Name Flags
httpServer final
public void jmxEnabled();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 1
start local 1 3: aload 1
instanceof org.glassfish.grizzly.http.server.jmxbase.Monitorable
ifeq 5
4: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.registerJmxForHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;)V
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: goto 10
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain
StackMap stack: java.lang.Throwable
7: astore 3
8: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
9: aload 3
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
3 5 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 7 7 any
public void jmxDisabled();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 1
start local 1 3: aload 1
instanceof org.glassfish.grizzly.http.server.jmxbase.Monitorable
ifeq 5
4: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.deregisterJmxForHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;)V
end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: goto 10
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain
StackMap stack: java.lang.Throwable
7: astore 3
8: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
9: aload 3
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
3 5 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 7 7 any
boolean doHandle(org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.server.Response);
descriptor: (Lorg/glassfish/grizzly/http/server/Request;Lorg/glassfish/grizzly/http/server/Response;)Z
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.getErrorPageGenerator:(Lorg/glassfish/grizzly/http/server/Request;)Lorg/glassfish/grizzly/http/server/ErrorPageGenerator;
invokevirtual org.glassfish.grizzly.http.server.Response.setErrorPageGenerator:(Lorg/glassfish/grizzly/http/server/ErrorPageGenerator;)V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
astore 3
start local 3 2: aload 3
ifnull 7
3: aload 3
getfield org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler.httpHandler:Lorg/glassfish/grizzly/http/server/HttpHandler;
astore 4
start local 4 4: aload 3
getfield org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler.pathUpdater:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$PathUpdater;
aload 0
aload 4
aload 1
invokeinterface org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater.update:(Lorg/glassfish/grizzly/http/server/HttpHandlerChain;Lorg/glassfish/grizzly/http/server/HttpHandler;Lorg/glassfish/grizzly/http/server/Request;)V
5: aload 4
aload 1
aload 2
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.doHandle:(Lorg/glassfish/grizzly/http/server/Request;Lorg/glassfish/grizzly/http/server/Response;)Z
6: ireturn
end local 4 7: StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler
StackMap stack:
aload 1
invokevirtual org.glassfish.grizzly.http.server.Request.getRequest:()Lorg/glassfish/grizzly/http/HttpRequestPacket;
invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getRequestURIRef:()Lorg/glassfish/grizzly/http/util/RequestURIRef;
astore 4
start local 4 8: aload 4
aload 0
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.getRequestURIEncoding:()Ljava/nio/charset/Charset;
invokevirtual org.glassfish.grizzly.http.util.RequestURIRef.setDefaultURIEncoding:(Ljava/nio/charset/Charset;)V
9: aload 4
10: aload 0
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.isAllowEncodedSlash:()Z
11: invokevirtual org.glassfish.grizzly.http.util.RequestURIRef.getDecodedRequestURIBC:(Z)Lorg/glassfish/grizzly/http/util/DataChunk;
astore 5
start local 5 12: aload 1
invokevirtual org.glassfish.grizzly.http.server.Request.obtainMappingData:()Lorg/glassfish/grizzly/http/server/util/MappingData;
astore 6
start local 6 13: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
aload 1
invokevirtual org.glassfish.grizzly.http.server.Request.getRequest:()Lorg/glassfish/grizzly/http/HttpRequestPacket;
14: aload 5
15: aload 6
16: iconst_0
17: invokevirtual org.glassfish.grizzly.http.server.util.Mapper.mapUriWithSemicolon:(Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/util/DataChunk;Lorg/glassfish/grizzly/http/server/util/MappingData;I)V
18: aload 6
getfield org.glassfish.grizzly.http.server.util.MappingData.context:Ljava/lang/Object;
ifnull 26
aload 6
getfield org.glassfish.grizzly.http.server.util.MappingData.context:Ljava/lang/Object;
instanceof org.glassfish.grizzly.http.server.HttpHandler
ifeq 26
19: aload 6
getfield org.glassfish.grizzly.http.server.util.MappingData.wrapper:Ljava/lang/Object;
ifnull 22
20: aload 6
getfield org.glassfish.grizzly.http.server.util.MappingData.wrapper:Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 7
start local 7 21: goto 23
end local 7 22: StackMap locals: org.glassfish.grizzly.http.util.RequestURIRef org.glassfish.grizzly.http.util.DataChunk org.glassfish.grizzly.http.server.util.MappingData
StackMap stack:
aload 6
getfield org.glassfish.grizzly.http.server.util.MappingData.context:Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 7
start local 7 23: StackMap locals: org.glassfish.grizzly.http.server.HttpHandler
StackMap stack:
aload 1
aload 6
invokestatic org.glassfish.grizzly.http.server.HttpHandlerChain.updatePaths:(Lorg/glassfish/grizzly/http/server/Request;Lorg/glassfish/grizzly/http/server/util/MappingData;)V
24: aload 7
aload 1
aload 2
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.doHandle:(Lorg/glassfish/grizzly/http/server/Request;Lorg/glassfish/grizzly/http/server/Response;)Z
25: ireturn
end local 7 26: StackMap locals:
StackMap stack:
aload 2
sipush 404
invokevirtual org.glassfish.grizzly.http.server.Response.sendError:(I)V
end local 6 end local 5 end local 4 end local 3 27: goto 38
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.Request org.glassfish.grizzly.http.server.Response
StackMap stack: java.lang.Exception
28: astore 3
start local 3 29: aload 2
getstatic org.glassfish.grizzly.http.util.HttpStatus.INTERNAL_SERVER_ERROR_500:Lorg/glassfish/grizzly/http/util/HttpStatus;
invokevirtual org.glassfish.grizzly.http.server.Response.setStatus:(Lorg/glassfish/grizzly/http/util/HttpStatus;)V
30: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 38
31: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Internal server error"
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
32: goto 38
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.Request org.glassfish.grizzly.http.server.Response java.lang.Exception
StackMap stack: java.lang.Exception
33: astore 4
start local 4 34: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 38
35: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
36: invokestatic org.glassfish.grizzly.localization.LogMessages.WARNING_GRIZZLY_HTTP_SERVER_HTTPHANDLERCHAIN_ERRORPAGE:()Ljava/lang/String;
aload 4
37: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 end local 3 38: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 39 1 request Lorg/glassfish/grizzly/http/server/Request;
0 39 2 response Lorg/glassfish/grizzly/http/server/Response;
2 27 3 rootHttpHandlerLocal Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
4 7 4 rh Lorg/glassfish/grizzly/http/server/HttpHandler;
8 27 4 uriRef Lorg/glassfish/grizzly/http/util/RequestURIRef;
12 27 5 decodedURI Lorg/glassfish/grizzly/http/util/DataChunk;
13 27 6 mappingData Lorg/glassfish/grizzly/http/server/util/MappingData;
21 22 7 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
23 26 7 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
29 38 3 t Ljava/lang/Exception;
34 38 4 ex2 Ljava/lang/Exception;
Exception table:
from to target type
1 6 28 Class java.lang.Exception
7 25 28 Class java.lang.Exception
26 27 28 Class java.lang.Exception
29 32 33 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
request final
response final
public void service(org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.server.Response);
descriptor: (Lorg/glassfish/grizzly/http/server/Request;Lorg/glassfish/grizzly/http/server/Response;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.IllegalStateException
dup
ldc "Method doesn't have to be called"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 1 1 request Lorg/glassfish/grizzly/http/server/Request;
0 1 2 response Lorg/glassfish/grizzly/http/server/Response;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
request final
response final
public void addHandler(org.glassfish.grizzly.http.server.HttpHandler, java.lang.String[]);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpHandler;[Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=3, args_size=3
start local 0 start local 1 start local 2 0: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 1 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
0 1 2 mappings [Ljava/lang/String;
MethodParameters:
Name Flags
httpHandler final
mappings final
public void addHandler(org.glassfish.grizzly.http.server.HttpHandler, org.glassfish.grizzly.http.server.HttpHandlerRegistration[]);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpHandler;[Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 2
arraylength
ifne 4
2: aload 0
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc ""
aastore
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.addHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;[Ljava/lang/String;)V
3: goto 47
4: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.started:Z
ifeq 8
5: aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.start:()V
6: aload 1
instanceof org.glassfish.grizzly.http.server.jmxbase.Monitorable
ifeq 8
7: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.registerJmxForHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 10
9: aload 0
dup
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
iconst_1
iadd
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.getName:()Ljava/lang/String;
astore 3
start local 3 11: aload 3
ifnull 13
12: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersByName:Ljava/util/concurrent/ConcurrentMap;
aload 3
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.dispatchHelper:Lorg/glassfish/grizzly/http/server/util/DispatcherHelper;
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.setDispatcherHelper:(Lorg/glassfish/grizzly/http/server/util/DispatcherHelper;)V
14: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 35
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.lang.String top int int org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
StackMap stack:
15: aload 7
iload 5
aaload
astore 4
start local 4 16: aload 4
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerRegistration.getContextPath:()Ljava/lang/String;
astore 8
start local 8 17: aload 4
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerRegistration.getUrlPattern:()Ljava/lang/String;
astore 9
start local 9 18: aload 8
invokevirtual java.lang.String.length:()I
ifeq 23
19: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
aload 1
20: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "index.html"
aastore
dup
iconst_1
ldc "index.htm"
aastore
aconst_null
21: invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addContext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;Lorg/glassfish/grizzly/http/server/naming/NamingContext;)V
22: goto 33
23: StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.lang.String org.glassfish.grizzly.http.server.HttpHandlerRegistration int int org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.lang.String java.lang.String
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.isRootConfigured:Z
ifne 30
aload 9
ldc "*."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 30
24: aload 0
iconst_1
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.isRootConfigured:Z
25: new org.glassfish.grizzly.http.server.HttpHandlerChain$1
dup
aload 0
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$1.<init>:(Lorg/glassfish/grizzly/http/server/HttpHandlerChain;)V
astore 10
start local 10 26: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
aload 10
27: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "index.html"
aastore
dup
iconst_1
ldc "index.htm"
aastore
aconst_null
28: invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addContext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;Lorg/glassfish/grizzly/http/server/naming/NamingContext;)V
end local 10 29: goto 33
30: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
aload 1
31: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "index.html"
aastore
dup
iconst_1
ldc "index.htm"
aastore
aconst_null
32: invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addContext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;Lorg/glassfish/grizzly/http/server/naming/NamingContext;)V
33: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
aload 9
aload 1
invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addWrapper:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
end local 9 end local 8 end local 4 34: iinc 5 1
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.lang.String top int int org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
StackMap stack:
35: iload 5
iload 6
if_icmplt 15
36: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
iconst_1
if_icmpne 42
aload 2
arraylength
iconst_1
if_icmpne 42
37: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
aload 2
iconst_0
aaload
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 42
38: aload 0
new org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler
dup
aload 1
39: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
aload 2
iconst_0
aaload
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler.<init>:(Lorg/glassfish/grizzly/http/server/HttpHandler;Lorg/glassfish/grizzly/http/server/HttpHandlerChain$PathUpdater;)V
40: putfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
41: goto 47
42: StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.lang.String
StackMap stack:
aload 0
aconst_null
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
end local 3 43: goto 47
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
StackMap stack: java.lang.Throwable
44: astore 11
45: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
46: aload 11
athrow
47: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
48: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 49 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
0 49 2 mappings [Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
11 43 3 name Ljava/lang/String;
16 34 4 reg Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
17 34 8 ctx Ljava/lang/String;
18 34 9 wrapper Ljava/lang/String;
26 29 10 a Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 44 44 any
MethodParameters:
Name Flags
httpHandler final
mappings final
public boolean removeHttpHandler(org.glassfish.grizzly.http.server.HttpHandler);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpHandler;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
3: aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.getName:()Ljava/lang/String;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersByName:Ljava/util/concurrent/ConcurrentMap;
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
astore 3
start local 3 7: aload 3
ifnull 34
8: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 17
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler java.lang.String org.glassfish.grizzly.http.server.HttpHandlerRegistration[] top int int org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
StackMap stack:
9: aload 7
iload 5
aaload
astore 4
start local 4 10: aload 4
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerRegistration.getContextPath:()Ljava/lang/String;
astore 8
start local 8 11: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
12: aload 4
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerRegistration.getUrlPattern:()Ljava/lang/String;
13: invokevirtual org.glassfish.grizzly.http.server.util.Mapper.removeWrapper:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
14: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 2
invokevirtual org.glassfish.grizzly.http.server.util.Mapper.getWrapperNames:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
arraylength
ifne 16
15: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
ldc "localhost"
aload 8
invokevirtual org.glassfish.grizzly.http.server.util.Mapper.removeContext:(Ljava/lang/String;Ljava/lang/String;)V
end local 8 end local 4 16: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 6
if_icmplt 9
18: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.deregisterJmxForHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;)V
19: aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.destroy:()V
20: aload 0
dup
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
iconst_1
isub
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
21: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlersCount:I
iconst_1
if_icmpne 33
22: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
23: astore 4
start local 4 24: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
astore 5
start local 5 25: aload 5
arraylength
iconst_1
if_icmpne 31
26: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
aload 5
iconst_0
aaload
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 31
27: aload 0
new org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler
dup
aload 1
28: getstatic org.glassfish.grizzly.http.server.HttpHandlerChain.ROOT_URLS:Ljava/util/Map;
aload 5
iconst_0
aaload
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater
invokespecial org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler.<init>:(Lorg/glassfish/grizzly/http/server/HttpHandler;Lorg/glassfish/grizzly/http/server/HttpHandlerChain$PathUpdater;)V
29: putfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
30: goto 34
31: StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler java.lang.String org.glassfish.grizzly.http.server.HttpHandlerRegistration[] java.util.Map$Entry org.glassfish.grizzly.http.server.HttpHandlerRegistration[]
StackMap stack:
aload 0
aconst_null
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
end local 5 end local 4 32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.rootHttpHandler:Lorg/glassfish/grizzly/http/server/HttpHandlerChain$RootHttpHandler;
34: StackMap locals:
StackMap stack:
aload 3
ifnull 35
iconst_1
goto 36
StackMap locals:
StackMap stack:
35: iconst_0
StackMap locals:
StackMap stack: int
36: istore 10
37: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
38: iload 10
ireturn
end local 3 end local 2 39: StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain org.glassfish.grizzly.http.server.HttpHandler
StackMap stack: java.lang.Throwable
astore 9
40: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
41: aload 9
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 42 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
4 39 2 name Ljava/lang/String;
7 39 3 mappings [Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
10 16 4 mapping Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
11 16 8 contextPath Ljava/lang/String;
24 32 4 entry Ljava/util/Map$Entry<Lorg/glassfish/grizzly/http/server/HttpHandler;[Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;>;
25 32 5 lastHttpHandlerMappings [Lorg/glassfish/grizzly/http/server/HttpHandlerRegistration;
Exception table:
from to target type
3 37 39 any
MethodParameters:
Name Flags
httpHandler final
public void removeAllHttpHandlers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 1
start local 1 3: aload 0
aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandlerChain.removeHttpHandler:(Lorg/glassfish/grizzly/http/server/HttpHandler;)Z
pop
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: goto 9
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
3 4 1 handler Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 6 6 any
public synchronized void start();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 1
start local 1 3: aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.start:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: goto 9
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
10: aload 0
iconst_1
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.started:Z
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
3 4 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 6 6 any
public synchronized void destroy();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.handlers:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.grizzly.http.server.HttpHandler
astore 1
start local 1 3: aload 1
invokevirtual org.glassfish.grizzly.http.server.HttpHandler.destroy:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: goto 9
StackMap locals: org.glassfish.grizzly.http.server.HttpHandlerChain
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.mapperUpdateLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
10: aload 0
iconst_0
putfield org.glassfish.grizzly.http.server.HttpHandlerChain.started:Z
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
3 4 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
Exception table:
from to target type
1 6 6 any
private void registerJmxForHandler(org.glassfish.grizzly.http.server.HttpHandler);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpHandler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.glassfish.grizzly.http.server.jmxbase.Monitorable
astore 2
start local 2 1: aload 2
invokeinterface org.glassfish.grizzly.http.server.jmxbase.Monitorable.createManagementObject:()Ljava/lang/Object;
astore 3
start local 3 2: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.monitors:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 3
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 4
3: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.httpServer:Lorg/glassfish/grizzly/http/server/HttpServer;
getfield org.glassfish.grizzly.http.server.HttpServer.jmxManager:Lorg/glassfish/grizzly/jmxbase/GrizzlyJmxManager;
aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.httpServer:Lorg/glassfish/grizzly/http/server/HttpServer;
getfield org.glassfish.grizzly.http.server.HttpServer.managementObject:Ljava/lang/Object;
aload 3
invokevirtual org.glassfish.grizzly.jmxbase.GrizzlyJmxManager.register:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: org.glassfish.grizzly.http.server.jmxbase.Monitorable java.lang.Object
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 5 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
1 5 2 monitorable Lorg/glassfish/grizzly/http/server/jmxbase/Monitorable;
2 5 3 jmx Ljava/lang/Object;
MethodParameters:
Name Flags
httpHandler final
private void deregisterJmxForHandler(org.glassfish.grizzly.http.server.HttpHandler);
descriptor: (Lorg/glassfish/grizzly/http/server/HttpHandler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.monitors:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
getfield org.glassfish.grizzly.http.server.HttpHandlerChain.httpServer:Lorg/glassfish/grizzly/http/server/HttpServer;
getfield org.glassfish.grizzly.http.server.HttpServer.jmxManager:Lorg/glassfish/grizzly/jmxbase/GrizzlyJmxManager;
aload 2
invokevirtual org.glassfish.grizzly.jmxbase.GrizzlyJmxManager.deregister:(Ljava/lang/Object;)V
3: StackMap locals: java.lang.Object
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/glassfish/grizzly/http/server/HttpHandlerChain;
0 4 1 httpHandler Lorg/glassfish/grizzly/http/server/HttpHandler;
1 4 2 jmx Ljava/lang/Object;
MethodParameters:
Name Flags
httpHandler final
}
SourceFile: "HttpHandlerChain.java"
NestMembers:
org.glassfish.grizzly.http.server.HttpHandlerChain$1 org.glassfish.grizzly.http.server.HttpHandlerChain$DispatchHelperImpl org.glassfish.grizzly.http.server.HttpHandlerChain$EmptyPathUpdater org.glassfish.grizzly.http.server.HttpHandlerChain$FullUrlPathResolver org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler org.glassfish.grizzly.http.server.HttpHandlerChain$SlashPathUpdater org.glassfish.grizzly.http.server.HttpHandlerChain$SlashStarPathUpdater
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public ReadLock = java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock of java.util.concurrent.locks.ReentrantReadWriteLock
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
org.glassfish.grizzly.http.server.HttpHandlerChain$1
private final DispatchHelperImpl = org.glassfish.grizzly.http.server.HttpHandlerChain$DispatchHelperImpl of org.glassfish.grizzly.http.server.HttpHandlerChain
private EmptyPathUpdater = org.glassfish.grizzly.http.server.HttpHandlerChain$EmptyPathUpdater of org.glassfish.grizzly.http.server.HttpHandlerChain
private FullUrlPathResolver = org.glassfish.grizzly.http.server.HttpHandlerChain$FullUrlPathResolver of org.glassfish.grizzly.http.server.HttpHandlerChain
private abstract PathUpdater = org.glassfish.grizzly.http.server.HttpHandlerChain$PathUpdater of org.glassfish.grizzly.http.server.HttpHandlerChain
private final RootHttpHandler = org.glassfish.grizzly.http.server.HttpHandlerChain$RootHttpHandler of org.glassfish.grizzly.http.server.HttpHandlerChain
private SlashPathUpdater = org.glassfish.grizzly.http.server.HttpHandlerChain$SlashPathUpdater of org.glassfish.grizzly.http.server.HttpHandlerChain
private SlashStarPathUpdater = org.glassfish.grizzly.http.server.HttpHandlerChain$SlashStarPathUpdater of org.glassfish.grizzly.http.server.HttpHandlerChain