public class org.glassfish.grizzly.http.server.FileCacheFilter extends org.glassfish.grizzly.filterchain.BaseFilter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.grizzly.http.server.FileCacheFilter
  super_class: org.glassfish.grizzly.filterchain.BaseFilter
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.glassfish.grizzly.http.server.filecache.FileCache fileCache;
    descriptor: Lorg/glassfish/grizzly/http/server/filecache/FileCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            ldc Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.glassfish.grizzly.http.server.FileCacheFilter.$assertionsDisabled:Z
         3: .line 51
            ldc Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
            putstatic org.glassfish.grizzly.http.server.FileCacheFilter.LOGGER:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.glassfish.grizzly.http.server.filecache.FileCache);
    descriptor: (Lorg/glassfish/grizzly/http/server/filecache/FileCache;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.http.server.filecache.FileCache fileCache
         0: .line 55
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.filterchain.BaseFilter.<init>:()V
         1: .line 57
            aload 0 /* this */
            aload 1 /* fileCache */
            putfield org.glassfish.grizzly.http.server.FileCacheFilter.fileCache:Lorg/glassfish/grizzly/http/server/filecache/FileCache;
         2: .line 59
            return
        end local 1 // org.glassfish.grizzly.http.server.filecache.FileCache fileCache
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0    3     1  fileCache  Lorg/glassfish/grizzly/http/server/filecache/FileCache;
    MethodParameters:
           Name  Flags
      fileCache  

  public org.glassfish.grizzly.filterchain.NextAction handleRead(org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
         0: .line 68
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.http.HttpContent
            astore 2 /* requestContent */
        start local 2 // org.glassfish.grizzly.http.HttpContent requestContent
         1: .line 69
            aload 2 /* requestContent */
            invokevirtual org.glassfish.grizzly.http.HttpContent.getHttpHeader:()Lorg/glassfish/grizzly/http/HttpHeader;
            checkcast org.glassfish.grizzly.http.HttpRequestPacket
            astore 3 /* request */
        start local 3 // org.glassfish.grizzly.http.HttpRequestPacket request
         2: .line 71
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.server.FileCacheFilter.fileCache:Lorg/glassfish/grizzly/http/server/filecache/FileCache;
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCache.isEnabled:()Z
            ifeq 38
            getstatic org.glassfish.grizzly.http.Method.GET:Lorg/glassfish/grizzly/http/Method;
            aload 3 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getMethod:()Lorg/glassfish/grizzly/http/Method;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 38
         3: .line 72
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.server.FileCacheFilter.fileCache:Lorg/glassfish/grizzly/http/server/filecache/FileCache;
            aload 3 /* request */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCache.get:(Lorg/glassfish/grizzly/http/HttpRequestPacket;)Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            astore 4 /* cacheEntry */
        start local 4 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
         4: .line 73
            aload 4 /* cacheEntry */
            ifnull 38
         5: .line 74
            aload 3 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getResponse:()Lorg/glassfish/grizzly/http/HttpResponsePacket;
            astore 5 /* response */
        start local 5 // org.glassfish.grizzly.http.HttpResponsePacket response
         6: .line 75
            aload 0 /* this */
            aload 4 /* cacheEntry */
            aload 5 /* response */
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.prepareResponse:(Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Lorg/glassfish/grizzly/http/HttpResponsePacket;)V
         7: .line 77
            aload 5 /* response */
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.getStatus:()I
            sipush 200
            if_icmpeq 14
         8: .line 79
            aload 1 /* ctx */
            aload 5 /* response */
            invokestatic org.glassfish.grizzly.http.HttpContent.builder:(Lorg/glassfish/grizzly/http/HttpHeader;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
         9: .line 80
            getstatic org.glassfish.grizzly.memory.Buffers.EMPTY_BUFFER:Lorg/glassfish/grizzly/Buffer;
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.content:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
        10: .line 81
            iconst_1
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.last:(Z)Lorg/glassfish/grizzly/http/HttpContent$Builder;
        11: .line 82
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.build:()Lorg/glassfish/grizzly/http/HttpContent;
        12: .line 79
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        13: .line 84
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.flush:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        14: .line 90
      StackMap locals: org.glassfish.grizzly.http.server.FileCacheFilter org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.http.HttpContent org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.filecache.FileCacheEntry org.glassfish.grizzly.http.HttpResponsePacket
      StackMap stack:
            aload 4 /* cacheEntry */
            aload 3 /* request */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.canServeCompressed:(Lorg/glassfish/grizzly/http/HttpRequestPacket;)Z
        15: .line 89
            istore 6 /* isServeCompressed */
        start local 6 // boolean isServeCompressed
        16: .line 94
            aload 0 /* this */
            aload 4 /* cacheEntry */
            aload 5 /* response */
        17: .line 95
            iload 6 /* isServeCompressed */
        18: .line 94
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.prepareResponseWithPayload:(Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Lorg/glassfish/grizzly/http/HttpResponsePacket;Z)V
        19: .line 97
            aload 4 /* cacheEntry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.type:Lorg/glassfish/grizzly/http/server/filecache/FileCache$CacheType;
            getstatic org.glassfish.grizzly.http.server.filecache.FileCache$CacheType.FILE:Lorg/glassfish/grizzly/http/server/filecache/FileCache$CacheType;
            if_acmpeq 29
        20: .line 99
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
        21: .line 100
            aload 4 /* cacheEntry */
            iload 6 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getByteBuffer:(Z)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
        22: .line 99
            invokestatic org.glassfish.grizzly.memory.Buffers.wrap:(Lorg/glassfish/grizzly/memory/MemoryManager;Ljava/nio/ByteBuffer;)Lorg/glassfish/grizzly/Buffer;
            astore 7 /* buffer */
        start local 7 // org.glassfish.grizzly.Buffer buffer
        23: .line 102
            aload 1 /* ctx */
            aload 5 /* response */
            invokestatic org.glassfish.grizzly.http.HttpContent.builder:(Lorg/glassfish/grizzly/http/HttpHeader;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
        24: .line 103
            aload 7 /* buffer */
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.content:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
        25: .line 104
            iconst_1
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.last:(Z)Lorg/glassfish/grizzly/http/HttpContent$Builder;
        26: .line 105
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.build:()Lorg/glassfish/grizzly/http/HttpContent;
        27: .line 102
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        28: .line 107
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.flush:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 7 // org.glassfish.grizzly.Buffer buffer
        29: .line 110
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.server.FileCacheFilter.fileCache:Lorg/glassfish/grizzly/http/server/filecache/FileCache;
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCache.isFileSendEnabled:()Z
            ifeq 34
            aload 3 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.isSecure:()Z
            ifne 34
        30: .line 111
            aload 0 /* this */
            aload 1 /* ctx */
            aload 5 /* response */
            aload 4 /* cacheEntry */
        31: .line 112
            iload 6 /* isServeCompressed */
        32: .line 111
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.sendFileZeroCopy:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpResponsePacket;Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Z)Lorg/glassfish/grizzly/filterchain/NextAction;
        33: .line 112
            goto 37
        34: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 5 /* response */
            aload 4 /* cacheEntry */
        35: .line 114
            iload 6 /* isServeCompressed */
        36: .line 113
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.sendFileUsingBuffers:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpResponsePacket;Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Z)Lorg/glassfish/grizzly/filterchain/NextAction;
        37: .line 110
      StackMap locals:
      StackMap stack: org.glassfish.grizzly.filterchain.NextAction
            areturn
        end local 6 // boolean isServeCompressed
        end local 5 // org.glassfish.grizzly.http.HttpResponsePacket response
        end local 4 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
        38: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInvokeAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 3 // org.glassfish.grizzly.http.HttpRequestPacket request
        end local 2 // org.glassfish.grizzly.http.HttpContent requestContent
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   39     0               this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0   39     1                ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            1   39     2     requestContent  Lorg/glassfish/grizzly/http/HttpContent;
            2   39     3            request  Lorg/glassfish/grizzly/http/HttpRequestPacket;
            4   38     4         cacheEntry  Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            6   38     5           response  Lorg/glassfish/grizzly/http/HttpResponsePacket;
           16   38     6  isServeCompressed  Z
           23   29     7             buffer  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ctx   final

  public org.glassfish.grizzly.http.server.filecache.FileCache getFileCache();
    descriptor: ()Lorg/glassfish/grizzly/http/server/filecache/FileCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
         0: .line 123
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.server.FileCacheFilter.fileCache:Lorg/glassfish/grizzly/http/server/filecache/FileCache;
            areturn
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;

  private void prepareResponse(org.glassfish.grizzly.http.server.filecache.FileCacheEntry, org.glassfish.grizzly.http.HttpResponsePacket);
    descriptor: (Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Lorg/glassfish/grizzly/http/HttpResponsePacket;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry entry
        start local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
         0: .line 131
            aload 2 /* response */
            aload 1 /* entry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.contentType:Lorg/glassfish/grizzly/http/util/ContentType;
            invokevirtual org.glassfish.grizzly.http.util.ContentType.prepare:()Lorg/glassfish/grizzly/http/util/ContentType;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.setContentType:(Lorg/glassfish/grizzly/http/util/ContentType;)V
         1: .line 133
            aload 1 /* entry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.server:Ljava/lang/String;
            ifnull 3
         2: .line 134
            aload 2 /* response */
            getstatic org.glassfish.grizzly.http.util.Header.Server:Lorg/glassfish/grizzly/http/util/Header;
            aload 1 /* entry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.server:Ljava/lang/String;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.addHeader:(Lorg/glassfish/grizzly/http/util/Header;Ljava/lang/String;)V
         3: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        end local 1 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry entry
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0    4     1     entry  Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            0    4     2  response  Lorg/glassfish/grizzly/http/HttpResponsePacket;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      entry     final
      response  final

  private void prepareResponseWithPayload(org.glassfish.grizzly.http.server.filecache.FileCacheEntry, org.glassfish.grizzly.http.HttpResponsePacket, boolean);
    descriptor: (Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Lorg/glassfish/grizzly/http/HttpResponsePacket;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry entry
        start local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        start local 3 // boolean isServeCompressed
         0: .line 145
            aload 2 /* response */
            getstatic org.glassfish.grizzly.http.util.Header.ETag:Lorg/glassfish/grizzly/http/util/Header;
            aload 1 /* entry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.Etag:Ljava/lang/String;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.addHeader:(Lorg/glassfish/grizzly/http/util/Header;Ljava/lang/String;)V
         1: .line 146
            aload 2 /* response */
            getstatic org.glassfish.grizzly.http.util.Header.LastModified:Lorg/glassfish/grizzly/http/util/Header;
            aload 1 /* entry */
            getfield org.glassfish.grizzly.http.server.filecache.FileCacheEntry.lastModifiedHeader:Ljava/lang/String;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.addHeader:(Lorg/glassfish/grizzly/http/util/Header;Ljava/lang/String;)V
         2: .line 148
            aload 2 /* response */
            aload 1 /* entry */
            iload 3 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getFileSize:(Z)J
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.setContentLengthLong:(J)V
         3: .line 150
            iload 3 /* isServeCompressed */
            ifeq 5
         4: .line 151
            aload 2 /* response */
            getstatic org.glassfish.grizzly.http.util.Header.ContentEncoding:Lorg/glassfish/grizzly/http/util/Header;
            ldc "gzip"
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket.addHeader:(Lorg/glassfish/grizzly/http/util/Header;Ljava/lang/String;)V
         5: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isServeCompressed
        end local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        end local 1 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry entry
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0    6     1              entry  Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            0    6     2           response  Lorg/glassfish/grizzly/http/HttpResponsePacket;
            0    6     3  isServeCompressed  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      entry              final
      response           final
      isServeCompressed  final

  private org.glassfish.grizzly.filterchain.NextAction sendFileUsingBuffers(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.http.HttpResponsePacket, org.glassfish.grizzly.http.server.filecache.FileCacheEntry, boolean);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpResponsePacket;Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Z)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        start local 3 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
        start local 4 // boolean isServeCompressed
         0: .line 159
            aload 1 /* ctx */
            aload 2 /* response */
         1: .line 160
            aload 3 /* cacheEntry */
            iload 4 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getFile:(Z)Ljava/io/File;
         2: .line 161
            aload 3 /* cacheEntry */
            iload 4 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getFileSize:(Z)J
         3: .line 159
            invokestatic org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry.create:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpResponsePacket;Ljava/io/File;J)Lorg/glassfish/grizzly/http/server/FileCacheFilter$FileSendEntry;
            astore 5 /* sendEntry */
        start local 5 // org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry sendEntry
         4: .line 163
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.suspend:()Ljava/lang/Runnable;
            pop
         5: .line 164
            aload 5 /* sendEntry */
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry.send:()V
         6: .line 165
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getSuspendAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
         7: areturn
        end local 5 // org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry sendEntry
         8: .line 166
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         9: .line 170
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInvokeAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 4 // boolean isServeCompressed
        end local 3 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
        end local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0   10     1                ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   10     2           response  Lorg/glassfish/grizzly/http/HttpResponsePacket;
            0   10     3         cacheEntry  Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            0   10     4  isServeCompressed  Z
            4    8     5          sendEntry  Lorg/glassfish/grizzly/http/server/FileCacheFilter$FileSendEntry;
      Exception table:
        from    to  target  type
           0     7       8  Class java.io.IOException
    MethodParameters:
                   Name  Flags
      ctx                final
      response           final
      cacheEntry         final
      isServeCompressed  final

  private org.glassfish.grizzly.filterchain.NextAction sendFileZeroCopy(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.http.HttpResponsePacket, org.glassfish.grizzly.http.server.filecache.FileCacheEntry, boolean);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpResponsePacket;Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;Z)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        start local 3 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
        start local 4 // boolean isServeCompressed
         0: .line 178
            aload 1 /* ctx */
            aload 2 /* response */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
         1: .line 181
            new org.glassfish.grizzly.FileTransfer
            dup
         2: .line 182
            aload 3 /* cacheEntry */
            iload 4 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getFile:(Z)Ljava/io/File;
         3: .line 183
            lconst_0
            aload 3 /* cacheEntry */
            iload 4 /* isServeCompressed */
            invokevirtual org.glassfish.grizzly.http.server.filecache.FileCacheEntry.getFileSize:(Z)J
         4: .line 181
            invokespecial org.glassfish.grizzly.FileTransfer.<init>:(Ljava/io/File;JJ)V
            astore 5 /* f */
        start local 5 // org.glassfish.grizzly.FileTransfer f
         5: .line 184
            aload 1 /* ctx */
            aload 5 /* f */
            new org.glassfish.grizzly.http.server.FileCacheFilter$1
            dup
            aload 0 /* this */
            aload 3 /* cacheEntry */
            invokespecial org.glassfish.grizzly.http.server.FileCacheFilter$1.<init>:(Lorg/glassfish/grizzly/http/server/FileCacheFilter;Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;)V
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Lorg/glassfish/grizzly/CompletionHandler;)V
         6: .line 193
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.http.server.FileCacheFilter.flush:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 5 // org.glassfish.grizzly.FileTransfer f
        end local 4 // boolean isServeCompressed
        end local 3 // org.glassfish.grizzly.http.server.filecache.FileCacheEntry cacheEntry
        end local 2 // org.glassfish.grizzly.http.HttpResponsePacket response
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0    7     1                ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    7     2           response  Lorg/glassfish/grizzly/http/HttpResponsePacket;
            0    7     3         cacheEntry  Lorg/glassfish/grizzly/http/server/filecache/FileCacheEntry;
            0    7     4  isServeCompressed  Z
            5    7     5                  f  Lorg/glassfish/grizzly/FileTransfer;
    MethodParameters:
                   Name  Flags
      ctx                final
      response           final
      cacheEntry         final
      isServeCompressed  final

  private org.glassfish.grizzly.filterchain.NextAction flush(org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
         0: .line 197
            aload 1 /* ctx */
            invokestatic org.glassfish.grizzly.http.HttpContext.get:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/http/HttpContext;
            astore 2 /* httpContext */
        start local 2 // org.glassfish.grizzly.http.HttpContext httpContext
         1: .line 198
            getstatic org.glassfish.grizzly.http.server.FileCacheFilter.$assertionsDisabled:Z
            ifne 2
            aload 2 /* httpContext */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 199
      StackMap locals: org.glassfish.grizzly.http.HttpContext
      StackMap stack:
            aload 2 /* httpContext */
            invokevirtual org.glassfish.grizzly.http.HttpContext.getOutputSink:()Lorg/glassfish/grizzly/OutputSink;
            astore 3 /* output */
        start local 3 // org.glassfish.grizzly.OutputSink output
         3: .line 201
            aload 3 /* output */
            invokeinterface org.glassfish.grizzly.OutputSink.canWrite:()Z
            ifeq 5
         4: .line 202
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
         5: .line 206
      StackMap locals: org.glassfish.grizzly.OutputSink
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getSuspendAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            astore 4 /* suspendAction */
        start local 4 // org.glassfish.grizzly.filterchain.NextAction suspendAction
         6: .line 207
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.suspend:()Ljava/lang/Runnable;
            pop
         7: .line 210
            aload 3 /* output */
            new org.glassfish.grizzly.http.server.FileCacheFilter$2
            dup
            aload 0 /* this */
            aload 1 /* ctx */
            invokespecial org.glassfish.grizzly.http.server.FileCacheFilter$2.<init>:(Lorg/glassfish/grizzly/http/server/FileCacheFilter;Lorg/glassfish/grizzly/filterchain/FilterChainContext;)V
            invokeinterface org.glassfish.grizzly.OutputSink.notifyCanWrite:(Lorg/glassfish/grizzly/WriteHandler;)V
         8: .line 226
            aload 4 /* suspendAction */
            areturn
        end local 4 // org.glassfish.grizzly.filterchain.NextAction suspendAction
        end local 3 // org.glassfish.grizzly.OutputSink output
        end local 2 // org.glassfish.grizzly.http.HttpContext httpContext
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.http.server.FileCacheFilter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/glassfish/grizzly/http/server/FileCacheFilter;
            0    9     1            ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            1    9     2    httpContext  Lorg/glassfish/grizzly/http/HttpContext;
            3    9     3         output  Lorg/glassfish/grizzly/OutputSink;
            6    9     4  suspendAction  Lorg/glassfish/grizzly/filterchain/NextAction;
    MethodParameters:
      Name  Flags
      ctx   final
}
SourceFile: "FileCacheFilter.java"
NestMembers:
  org.glassfish.grizzly.http.server.FileCacheFilter$1  org.glassfish.grizzly.http.server.FileCacheFilter$2  org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry
InnerClasses:
  public Builder = org.glassfish.grizzly.http.HttpContent$Builder of org.glassfish.grizzly.http.HttpContent
  org.glassfish.grizzly.http.server.FileCacheFilter$1
  org.glassfish.grizzly.http.server.FileCacheFilter$2
  private FileSendEntry = org.glassfish.grizzly.http.server.FileCacheFilter$FileSendEntry of org.glassfish.grizzly.http.server.FileCacheFilter
  public final CacheType = org.glassfish.grizzly.http.server.filecache.FileCache$CacheType of org.glassfish.grizzly.http.server.filecache.FileCache