public class org.apache.catalina.valves.LoadBalancerDrainingValve extends org.apache.catalina.valves.ValveBase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.valves.LoadBalancerDrainingValve
super_class: org.apache.catalina.valves.ValveBase
{
public static final java.lang.String ATTRIBUTE_KEY_JK_LB_ACTIVATION;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "JK_LB_ACTIVATION"
private int _redirectStatusCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String _ignoreCookieName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String _ignoreCookieValue;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokespecial org.apache.catalina.valves.ValveBase.<init>:(Z)V
1: aload 0
sipush 307
putfield org.apache.catalina.valves.LoadBalancerDrainingValve._redirectStatusCode:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
public void setRedirectStatusCode(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.LoadBalancerDrainingValve._redirectStatusCode:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
0 2 1 code I
MethodParameters:
Name Flags
code
public java.lang.String getIgnoreCookieName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
public void setIgnoreCookieName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieName:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
0 2 1 cookieName Ljava/lang/String;
MethodParameters:
Name Flags
cookieName
public java.lang.String getIgnoreCookieValue();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieValue:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
public void setIgnoreCookieValue(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieValue:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
0 2 1 cookieValue Ljava/lang/String;
MethodParameters:
Name Flags
cookieValue
public void invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response);
descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: ldc "DIS"
aload 1
ldc "JK_LB_ACTIVATION"
invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 51
1: aload 1
invokevirtual org.apache.catalina.connector.Request.isRequestedSessionIdValid:()Z
ifne 51
2: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 4
3: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
ldc "Load-balancer is in DISABLED state; draining this node"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 5: aconst_null
astore 4
start local 4 6: aload 1
invokevirtual org.apache.catalina.connector.Request.getCookies:()[Ljakarta/servlet/http/Cookie;
astore 5
start local 5 7: aload 1
invokevirtual org.apache.catalina.connector.Request.getContext:()Lorg/apache/catalina/Context;
invokestatic org.apache.catalina.util.SessionConfig.getSessionCookieName:(Lorg/apache/catalina/Context;)Ljava/lang/String;
astore 6
start local 6 8: aload 5
ifnull 25
9: aload 5
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 24
StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String top int int jakarta.servlet.http.Cookie[]
StackMap stack:
10: aload 10
iload 8
aaload
astore 7
start local 7 11: aload 7
invokevirtual jakarta.servlet.http.Cookie.getName:()Ljava/lang/String;
astore 11
start local 11 12: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 14
13: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Checking cookie "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual jakarta.servlet.http.Cookie.getValue:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
14: StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String jakarta.servlet.http.Cookie int int jakarta.servlet.http.Cookie[] java.lang.String
StackMap stack:
aload 6
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
15: aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestedSessionId:()Ljava/lang/String;
aload 7
invokevirtual jakarta.servlet.http.Cookie.getValue:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: aload 7
astore 4
17: goto 23
StackMap locals:
StackMap stack:
18: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieName:Ljava/lang/String;
ifnull 23
19: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieName:Ljava/lang/String;
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
20: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieValue:Ljava/lang/String;
ifnull 23
21: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieValue:Ljava/lang/String;
aload 7
invokevirtual jakarta.servlet.http.Cookie.getValue:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
22: iconst_1
istore 3
end local 11 end local 7 23: StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String top int int jakarta.servlet.http.Cookie[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
24: iload 8
iload 9
if_icmplt 10
25: StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String
StackMap stack:
iload 3
ifeq 32
26: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 30
27: aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve.containerLog:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Client is presenting a valid "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._ignoreCookieName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: ldc " cookie, re-balancing is being skipped"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.valves.LoadBalancerDrainingValve.getNext:()Lorg/apache/catalina/Valve;
aload 1
aload 2
invokeinterface org.apache.catalina.Valve.invoke:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
31: return
32: StackMap locals:
StackMap stack:
aload 4
ifnull 41
33: aload 4
aload 1
invokevirtual org.apache.catalina.connector.Request.getContext:()Lorg/apache/catalina/Context;
invokestatic org.apache.catalina.util.SessionConfig.getSessionCookiePath:(Lorg/apache/catalina/Context;)Ljava/lang/String;
invokevirtual jakarta.servlet.http.Cookie.setPath:(Ljava/lang/String;)V
34: aload 4
iconst_0
invokevirtual jakarta.servlet.http.Cookie.setMaxAge:(I)V
35: aload 4
ldc ""
invokevirtual jakarta.servlet.http.Cookie.setValue:(Ljava/lang/String;)V
36: aload 1
invokevirtual org.apache.catalina.connector.Request.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
invokeinterface jakarta.servlet.ServletContext.getSessionCookieConfig:()Ljakarta/servlet/SessionCookieConfig;
astore 7
start local 7 37: aload 4
aload 1
invokevirtual org.apache.catalina.connector.Request.isSecure:()Z
ifne 38
aload 7
invokeinterface jakarta.servlet.SessionCookieConfig.isSecure:()Z
ifne 38
iconst_0
goto 39
StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String jakarta.servlet.SessionCookieConfig
StackMap stack: jakarta.servlet.http.Cookie
38: iconst_1
StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response int jakarta.servlet.http.Cookie jakarta.servlet.http.Cookie[] java.lang.String jakarta.servlet.SessionCookieConfig
StackMap stack: jakarta.servlet.http.Cookie int
39: invokevirtual jakarta.servlet.http.Cookie.setSecure:(Z)V
40: aload 2
aload 4
invokevirtual org.apache.catalina.connector.Response.addCookie:(Ljakarta/servlet/http/Cookie;)V
end local 7 41: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
astore 7
start local 7 42: aload 1
invokevirtual org.apache.catalina.connector.Request.getContext:()Lorg/apache/catalina/Context;
invokestatic org.apache.catalina.util.SessionConfig.getSessionUriParamName:(Lorg/apache/catalina/Context;)Ljava/lang/String;
astore 8
start local 8 43: aload 7
new java.lang.StringBuilder
dup
ldc ";"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 45
44: aload 7
new java.lang.StringBuilder
dup
ldc ";"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "=[^&?]*"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 7
45: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 1
invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
astore 9
start local 9 46: aload 9
ifnull 48
47: new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
48: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "Location"
aload 7
invokevirtual org.apache.catalina.connector.Response.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
49: aload 2
aload 0
getfield org.apache.catalina.valves.LoadBalancerDrainingValve._redirectStatusCode:I
invokevirtual org.apache.catalina.connector.Response.setStatus:(I)V
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 50: goto 52
51: StackMap locals: org.apache.catalina.valves.LoadBalancerDrainingValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response
StackMap stack:
aload 0
invokevirtual org.apache.catalina.valves.LoadBalancerDrainingValve.getNext:()Lorg/apache/catalina/Valve;
aload 1
aload 2
invokeinterface org.apache.catalina.Valve.invoke:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
52: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lorg/apache/catalina/valves/LoadBalancerDrainingValve;
0 53 1 request Lorg/apache/catalina/connector/Request;
0 53 2 response Lorg/apache/catalina/connector/Response;
5 50 3 ignoreRebalance Z
6 50 4 sessionCookie Ljakarta/servlet/http/Cookie;
7 50 5 cookies [Ljakarta/servlet/http/Cookie;
8 50 6 sessionCookieName Ljava/lang/String;
11 23 7 cookie Ljakarta/servlet/http/Cookie;
12 23 11 cookieName Ljava/lang/String;
37 41 7 sessionCookieConfig Ljakarta/servlet/SessionCookieConfig;
42 50 7 uri Ljava/lang/String;
43 50 8 sessionURIParamName Ljava/lang/String;
46 50 9 queryString Ljava/lang/String;
Exceptions:
throws java.io.IOException, jakarta.servlet.ServletException
MethodParameters:
Name Flags
request
response
}
SourceFile: "LoadBalancerDrainingValve.java"