public class org.springframework.web.servlet.support.ServletUriComponentsBuilder extends org.springframework.web.util.UriComponentsBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.web.servlet.support.ServletUriComponentsBuilder
  super_class: org.springframework.web.util.UriComponentsBuilder
{
  private java.lang.String originalPath;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
         0: .line 60
            aload 0 /* this */
            invokespecial org.springframework.web.util.UriComponentsBuilder.<init>:()V
         1: .line 61
            return
        end local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;

  protected void <init>(org.springframework.web.servlet.support.ServletUriComponentsBuilder);
    descriptor: (Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
        start local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder other
         0: .line 68
            aload 0 /* this */
            aload 1 /* other */
            invokespecial org.springframework.web.util.UriComponentsBuilder.<init>:(Lorg/springframework/web/util/UriComponentsBuilder;)V
         1: .line 69
            aload 0 /* this */
            aload 1 /* other */
            getfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
            putfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
         2: .line 70
            return
        end local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder other
        end local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            0    3     1  other  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
       Name  Flags
      other  

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromContextPath(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 80
            aload 0 /* request */
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.initFromRequest:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            astore 1 /* builder */
        start local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
         1: .line 81
            aload 1 /* builder */
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.replacePath:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         2: .line 82
            aload 1 /* builder */
            areturn
        end local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  request  Ljavax/servlet/http/HttpServletRequest;
            1    3     1  builder  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
         Name  Flags
      request  

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromServletMapping(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 94
            aload 0 /* request */
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromContextPath:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            astore 1 /* builder */
        start local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
         1: .line 95
            new org.springframework.web.util.UrlPathHelper
            dup
            invokespecial org.springframework.web.util.UrlPathHelper.<init>:()V
            aload 0 /* request */
            invokevirtual org.springframework.web.util.UrlPathHelper.getPathWithinServletMapping:(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 96
            aload 1 /* builder */
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.path:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         3: .line 98
      StackMap locals: org.springframework.web.servlet.support.ServletUriComponentsBuilder
      StackMap stack:
            aload 1 /* builder */
            areturn
        end local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  request  Ljavax/servlet/http/HttpServletRequest;
            1    4     1  builder  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
         Name  Flags
      request  

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromRequestUri(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 106
            aload 0 /* request */
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.initFromRequest:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            astore 1 /* builder */
        start local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
         1: .line 107
            aload 1 /* builder */
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.initPath:(Ljava/lang/String;)V
         2: .line 108
            aload 1 /* builder */
            areturn
        end local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  request  Ljavax/servlet/http/HttpServletRequest;
            1    3     1  builder  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
         Name  Flags
      request  

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromRequest(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 116
            aload 0 /* request */
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.initFromRequest:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            astore 1 /* builder */
        start local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
         1: .line 117
            aload 1 /* builder */
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.initPath:(Ljava/lang/String;)V
         2: .line 118
            aload 1 /* builder */
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.query:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         3: .line 119
            aload 1 /* builder */
            areturn
        end local 1 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  request  Ljavax/servlet/http/HttpServletRequest;
            1    4     1  builder  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
         Name  Flags
      request  

  private static org.springframework.web.servlet.support.ServletUriComponentsBuilder initFromRequest(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // javax.servlet.http.HttpServletRequest request
         0: .line 126
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getScheme:()Ljava/lang/String;
            astore 1 /* scheme */
        start local 1 // java.lang.String scheme
         1: .line 127
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getServerName:()Ljava/lang/String;
            astore 2 /* host */
        start local 2 // java.lang.String host
         2: .line 128
            aload 0 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getServerPort:()I
            istore 3 /* port */
        start local 3 // int port
         3: .line 130
            new org.springframework.web.servlet.support.ServletUriComponentsBuilder
            dup
            invokespecial org.springframework.web.servlet.support.ServletUriComponentsBuilder.<init>:()V
            astore 4 /* builder */
        start local 4 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
         4: .line 131
            aload 4 /* builder */
            aload 1 /* scheme */
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.scheme:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         5: .line 132
            aload 4 /* builder */
            aload 2 /* host */
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.host:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         6: .line 133
            ldc "http"
            aload 1 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
            iload 3 /* port */
            bipush 80
            if_icmpne 8
      StackMap locals: javax.servlet.http.HttpServletRequest java.lang.String java.lang.String int org.springframework.web.servlet.support.ServletUriComponentsBuilder
      StackMap stack:
         7: ldc "https"
            aload 1 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
            iload 3 /* port */
            sipush 443
            if_icmpeq 9
         8: .line 134
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            iload 3 /* port */
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.port:(I)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         9: .line 136
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            areturn
        end local 4 // org.springframework.web.servlet.support.ServletUriComponentsBuilder builder
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // java.lang.String scheme
        end local 0 // javax.servlet.http.HttpServletRequest request
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  request  Ljavax/servlet/http/HttpServletRequest;
            1   10     1   scheme  Ljava/lang/String;
            2   10     2     host  Ljava/lang/String;
            3   10     3     port  I
            4   10     4  builder  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    MethodParameters:
         Name  Flags
      request  

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromCurrentContextPath();
    descriptor: ()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 147
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.getCurrentRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromContextPath:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromCurrentServletMapping();
    descriptor: ()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 155
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.getCurrentRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromServletMapping:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromCurrentRequestUri();
    descriptor: ()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 163
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.getCurrentRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromRequestUri:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.springframework.web.servlet.support.ServletUriComponentsBuilder fromCurrentRequest();
    descriptor: ()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 171
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.getCurrentRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokestatic org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromRequest:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static javax.servlet.http.HttpServletRequest getCurrentRequest();
    descriptor: ()Ljavax/servlet/http/HttpServletRequest;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 178
            invokestatic org.springframework.web.context.request.RequestContextHolder.getRequestAttributes:()Lorg/springframework/web/context/request/RequestAttributes;
            astore 0 /* attrs */
        start local 0 // org.springframework.web.context.request.RequestAttributes attrs
         1: .line 179
            aload 0 /* attrs */
            instanceof org.springframework.web.context.request.ServletRequestAttributes
            ldc "No current ServletRequestAttributes"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         2: .line 180
            aload 0 /* attrs */
            checkcast org.springframework.web.context.request.ServletRequestAttributes
            invokevirtual org.springframework.web.context.request.ServletRequestAttributes.getRequest:()Ljavax/servlet/http/HttpServletRequest;
            areturn
        end local 0 // org.springframework.web.context.request.RequestAttributes attrs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    3     0  attrs  Lorg/springframework/web/context/request/RequestAttributes;

  private void initPath(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
        start local 1 // java.lang.String path
         0: .line 185
            aload 0 /* this */
            aload 1 /* path */
            putfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
         1: .line 186
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.replacePath:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
         2: .line 187
            return
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            0    3     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public java.lang.String removePathExtension();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
         0: .line 206
            aconst_null
            astore 1 /* extension */
        start local 1 // java.lang.String extension
         1: .line 207
            aload 0 /* this */
            getfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
            ifnull 7
         2: .line 208
            aload 0 /* this */
            getfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
            invokestatic org.springframework.web.util.UriUtils.extractFileExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* extension */
         3: .line 209
            aload 1 /* extension */
            invokestatic org.springframework.util.StringUtils.isEmpty:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 210
            aload 0 /* this */
            getfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 1 /* extension */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            isub
            istore 2 /* end */
        start local 2 // int end
         5: .line 211
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
            iconst_0
            iload 2 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.replacePath:(Ljava/lang/String;)Lorg/springframework/web/util/UriComponentsBuilder;
            pop
        end local 2 // int end
         6: .line 213
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.springframework.web.servlet.support.ServletUriComponentsBuilder.originalPath:Ljava/lang/String;
         7: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* extension */
            areturn
        end local 1 // java.lang.String extension
        end local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            1    8     1  extension  Ljava/lang/String;
            5    6     2        end  I
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public org.springframework.web.servlet.support.ServletUriComponentsBuilder cloneBuilder();
    descriptor: ()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
         0: .line 220
            new org.springframework.web.servlet.support.ServletUriComponentsBuilder
            dup
            aload 0 /* this */
            invokespecial org.springframework.web.servlet.support.ServletUriComponentsBuilder.<init>:(Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;)V
            areturn
        end local 0 // org.springframework.web.servlet.support.ServletUriComponentsBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;

  public org.springframework.web.util.UriComponentsBuilder cloneBuilder();
    descriptor: ()Lorg/springframework/web/util/UriComponentsBuilder;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.springframework.web.servlet.support.ServletUriComponentsBuilder.cloneBuilder:()Lorg/springframework/web/servlet/support/ServletUriComponentsBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ServletUriComponentsBuilder.java"