public abstract class io.dropwizard.jersey.errors.LoggingExceptionMapper<E extends java.lang.Throwable> implements javax.ws.rs.ext.ExceptionMapper<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.dropwizard.jersey.errors.LoggingExceptionMapper
  super_class: java.lang.Object
{
  protected final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(org.slf4j.Logger);
    descriptor: (Lorg/slf4j/Logger;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // org.slf4j.Logger logger
         0: .line 23
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 24
            aload 0 /* this */
            aload 1 /* logger */
            ldc "logger"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.slf4j.Logger
            putfield io.dropwizard.jersey.errors.LoggingExceptionMapper.logger:Lorg/slf4j/Logger;
         2: .line 25
            return
        end local 1 // org.slf4j.Logger logger
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0    3     1  logger  Lorg/slf4j/Logger;
    MethodParameters:
        Name  Flags
      logger  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
         0: .line 31
            aload 0 /* this */
            ldc Lio/dropwizard/jersey/errors/LoggingExceptionMapper;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            invokespecial io.dropwizard.jersey.errors.LoggingExceptionMapper.<init>:(Lorg/slf4j/Logger;)V
         1: .line 32
            return
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;

  public javax.ws.rs.core.Response toResponse(E);
    descriptor: (Ljava/lang/Throwable;)Ljavax/ws/rs/core/Response;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // java.lang.Throwable exception
         0: .line 38
            aload 1 /* exception */
            instanceof javax.ws.rs.WebApplicationException
            ifeq 12
         1: .line 39
            aload 1 /* exception */
            checkcast javax.ws.rs.WebApplicationException
            invokevirtual javax.ws.rs.WebApplicationException.getResponse:()Ljavax/ws/rs/core/Response;
            astore 2 /* response */
        start local 2 // javax.ws.rs.core.Response response
         2: .line 40
            aload 2 /* response */
            invokevirtual javax.ws.rs.core.Response.getStatusInfo:()Ljavax/ws/rs/core/Response$StatusType;
            invokeinterface javax.ws.rs.core.Response$StatusType.getFamily:()Ljavax/ws/rs/core/Response$Status$Family;
            astore 3 /* family */
        start local 3 // javax.ws.rs.core.Response$Status$Family family
         3: .line 41
            aload 3 /* family */
            getstatic javax.ws.rs.core.Response$Status$Family.REDIRECTION:Ljavax/ws/rs/core/Response$Status$Family;
            invokevirtual javax.ws.rs.core.Response$Status$Family.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 42
            aload 2 /* response */
            areturn
         5: .line 44
      StackMap locals: javax.ws.rs.core.Response javax.ws.rs.core.Response$Status$Family
      StackMap stack:
            aload 3 /* family */
            getstatic javax.ws.rs.core.Response$Status$Family.SERVER_ERROR:Ljavax/ws/rs/core/Response$Status$Family;
            invokevirtual javax.ws.rs.core.Response$Status$Family.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 45
            aload 0 /* this */
            aload 1 /* exception */
            invokevirtual io.dropwizard.jersey.errors.LoggingExceptionMapper.logException:(Ljava/lang/Throwable;)J
            pop2
         7: .line 48
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            invokestatic javax.ws.rs.core.Response.fromResponse:(Ljavax/ws/rs/core/Response;)Ljavax/ws/rs/core/Response$ResponseBuilder;
         8: .line 49
            getstatic javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE:Ljavax/ws/rs/core/MediaType;
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.type:(Ljavax/ws/rs/core/MediaType;)Ljavax/ws/rs/core/Response$ResponseBuilder;
         9: .line 50
            new io.dropwizard.jersey.errors.ErrorMessage
            dup
            aload 2 /* response */
            invokevirtual javax.ws.rs.core.Response.getStatus:()I
            aload 1 /* exception */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            invokespecial io.dropwizard.jersey.errors.ErrorMessage.<init>:(ILjava/lang/String;)V
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.entity:(Ljava/lang/Object;)Ljavax/ws/rs/core/Response$ResponseBuilder;
        10: .line 51
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.build:()Ljavax/ws/rs/core/Response;
        11: .line 48
            areturn
        end local 3 // javax.ws.rs.core.Response$Status$Family family
        end local 2 // javax.ws.rs.core.Response response
        12: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* exception */
            invokevirtual io.dropwizard.jersey.errors.LoggingExceptionMapper.logException:(Ljava/lang/Throwable;)J
            lstore 2 /* id */
        start local 2 // long id
        13: .line 58
            getstatic javax.ws.rs.core.Response$Status.INTERNAL_SERVER_ERROR:Ljavax/ws/rs/core/Response$Status;
            invokevirtual javax.ws.rs.core.Response$Status.getStatusCode:()I
            invokestatic javax.ws.rs.core.Response.status:(I)Ljavax/ws/rs/core/Response$ResponseBuilder;
        14: .line 59
            getstatic javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE:Ljavax/ws/rs/core/MediaType;
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.type:(Ljavax/ws/rs/core/MediaType;)Ljavax/ws/rs/core/Response$ResponseBuilder;
        15: .line 60
            new io.dropwizard.jersey.errors.ErrorMessage
            dup
            aload 0 /* this */
            lload 2 /* id */
            aload 1 /* exception */
            invokevirtual io.dropwizard.jersey.errors.LoggingExceptionMapper.formatErrorMessage:(JLjava/lang/Throwable;)Ljava/lang/String;
            invokespecial io.dropwizard.jersey.errors.ErrorMessage.<init>:(Ljava/lang/String;)V
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.entity:(Ljava/lang/Object;)Ljavax/ws/rs/core/Response$ResponseBuilder;
        16: .line 61
            invokevirtual javax.ws.rs.core.Response$ResponseBuilder.build:()Ljavax/ws/rs/core/Response;
        17: .line 58
            areturn
        end local 2 // long id
        end local 1 // java.lang.Throwable exception
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0   18     1  exception  TE;
            2   12     2   response  Ljavax/ws/rs/core/Response;
            3   12     3     family  Ljavax/ws/rs/core/Response$Status$Family;
           13   18     2         id  J
    Signature: (TE;)Ljavax/ws/rs/core/Response;
    MethodParameters:
           Name  Flags
      exception  

  protected java.lang.String formatErrorMessage(long, E);
    descriptor: (JLjava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // long id
        start local 3 // java.lang.Throwable exception
         0: .line 66
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            ldc "There was an error processing your request. It has been logged (ID %016x)."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Throwable exception
        end local 1 // long id
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0    1     1         id  J
            0    1     3  exception  TE;
    Signature: (JTE;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      id         
      exception  

  protected long logException();
    descriptor: (Ljava/lang/Throwable;)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // java.lang.Throwable exception
         0: .line 70
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextLong:()J
            lstore 2 /* id */
        start local 2 // long id
         1: .line 71
            aload 0 /* this */
            lload 2 /* id */
            aload 1 /* exception */
            invokevirtual io.dropwizard.jersey.errors.LoggingExceptionMapper.logException:(JLjava/lang/Throwable;)V
         2: .line 72
            lload 2 /* id */
            lreturn
        end local 2 // long id
        end local 1 // java.lang.Throwable exception
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0    3     1  exception  TE;
            1    3     2         id  J
    Signature: (TE;)J
    MethodParameters:
           Name  Flags
      exception  

  protected void logException(long, );
    descriptor: (JLjava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // long id
        start local 3 // java.lang.Throwable exception
         0: .line 77
            aload 0 /* this */
            getfield io.dropwizard.jersey.errors.LoggingExceptionMapper.logger:Lorg/slf4j/Logger;
            aload 0 /* this */
            lload 1 /* id */
            aload 3 /* exception */
            invokevirtual io.dropwizard.jersey.errors.LoggingExceptionMapper.formatLogMessage:(JLjava/lang/Throwable;)Ljava/lang/String;
            aload 3 /* exception */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 78
            return
        end local 3 // java.lang.Throwable exception
        end local 1 // long id
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0    2     1         id  J
            0    2     3  exception  TE;
    Signature: (JTE;)V
    MethodParameters:
           Name  Flags
      id         
      exception  

  protected java.lang.String formatLogMessage(long, java.lang.Throwable);
    descriptor: (JLjava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
        start local 1 // long id
        start local 3 // java.lang.Throwable exception
         0: .line 82
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            ldc "Error handling a request: %016x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.Throwable exception
        end local 1 // long id
        end local 0 // io.dropwizard.jersey.errors.LoggingExceptionMapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lio/dropwizard/jersey/errors/LoggingExceptionMapper<TE;>;
            0    1     1         id  J
            0    1     3  exception  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      id         
      exception  
}
Signature: <E:Ljava/lang/Throwable;>Ljava/lang/Object;Ljavax/ws/rs/ext/ExceptionMapper<TE;>;
SourceFile: "LoggingExceptionMapper.java"
InnerClasses:
  public abstract ResponseBuilder = javax.ws.rs.core.Response$ResponseBuilder of javax.ws.rs.core.Response
  public final Status = javax.ws.rs.core.Response$Status of javax.ws.rs.core.Response
  public final Family = javax.ws.rs.core.Response$Status$Family of javax.ws.rs.core.Response$Status
  public abstract StatusType = javax.ws.rs.core.Response$StatusType of javax.ws.rs.core.Response
    RuntimeVisibleAnnotations: 
      javax.ws.rs.ext.Provider()