public class org.glassfish.grizzly.http.AlpnSupport extends java.lang.Object
{
private static final java.util.logging.Logger LOGGER;
private static final java.util.Map SSL_TO_CONNECTION_MAP;
private static final org.glassfish.grizzly.http.AlpnSupport INSTANCE;
private static final org.glassfish.grizzly.http.AplnExtensionCompatibility COMPATIBILITY;
private final java.util.Map serverSideNegotiators;
private final java.util.concurrent.locks.ReadWriteLock serverSideLock;
private final java.util.Map clientSideNegotiators;
private final java.util.concurrent.locks.ReadWriteLock clientSideLock;
private final org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener handshakeListener;
public static boolean isEnabled()
{
boolean v;
org.glassfish.grizzly.http.AlpnSupport v;
v = <org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.http.AlpnSupport INSTANCE>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static org.glassfish.grizzly.http.AlpnSupport getInstance()
{
java.lang.IllegalStateException v;
boolean v;
org.glassfish.grizzly.http.AlpnSupport v;
v = staticinvoke <org.glassfish.grizzly.http.AlpnSupport: boolean isEnabled()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("TLS ALPN is disabled");
throw v;
label:
v = <org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.http.AlpnSupport INSTANCE>;
return v;
}
public static org.glassfish.grizzly.Connection getConnection(javax.net.ssl.SSLEngine)
{
java.lang.Throwable v;
java.util.Map v, v;
java.lang.Object v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v = <org.glassfish.grizzly.http.AlpnSupport: java.util.Map SSL_TO_CONNECTION_MAP>;
entermonitor v;
label:
v = <org.glassfish.grizzly.http.AlpnSupport: java.util.Map SSL_TO_CONNECTION_MAP>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
private static void setConnection(javax.net.ssl.SSLEngine, org.glassfish.grizzly.Connection)
{
java.lang.Throwable v;
java.util.Map v, v;
org.glassfish.grizzly.Connection v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: org.glassfish.grizzly.Connection;
v = <org.glassfish.grizzly.http.AlpnSupport: java.util.Map SSL_TO_CONNECTION_MAP>;
entermonitor v;
label:
v = <org.glassfish.grizzly.http.AlpnSupport: java.util.Map SSL_TO_CONNECTION_MAP>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void <init>()
{
org.glassfish.grizzly.http.AlpnSupport v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v;
java.util.WeakHashMap v, v;
org.glassfish.grizzly.http.AlpnSupport$1 v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map serverSideNegotiators> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock> = v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map clientSideNegotiators> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock> = v;
v = new org.glassfish.grizzly.http.AlpnSupport$1;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport$1: void <init>(org.glassfish.grizzly.http.AlpnSupport)>(v);
v.<org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener handshakeListener> = v;
return;
}
public void configure(org.glassfish.grizzly.ssl.SSLBaseFilter)
{
org.glassfish.grizzly.ssl.SSLBaseFilter v;
org.glassfish.grizzly.http.AlpnSupport v;
org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.ssl.SSLBaseFilter;
v = v.<org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener handshakeListener>;
virtualinvoke v.<org.glassfish.grizzly.ssl.SSLBaseFilter: void addHandshakeListener(org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener)>(v);
return;
}
public void setServerSideNegotiator(org.glassfish.grizzly.Transport, org.glassfish.grizzly.npn.AlpnServerNegotiator)
{
org.glassfish.grizzly.Transport v;
org.glassfish.grizzly.npn.AlpnServerNegotiator v;
org.glassfish.grizzly.http.AlpnSupport v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Transport;
v := @parameter: org.glassfish.grizzly.npn.AlpnServerNegotiator;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport: void putServerSideNegotiator(java.lang.Object,org.glassfish.grizzly.npn.AlpnServerNegotiator)>(v, v);
return;
}
public void setServerSideNegotiator(org.glassfish.grizzly.Connection, org.glassfish.grizzly.npn.AlpnServerNegotiator)
{
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.npn.AlpnServerNegotiator v;
org.glassfish.grizzly.http.AlpnSupport v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Connection;
v := @parameter: org.glassfish.grizzly.npn.AlpnServerNegotiator;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport: void putServerSideNegotiator(java.lang.Object,org.glassfish.grizzly.npn.AlpnServerNegotiator)>(v, v);
return;
}
public void setClientSideNegotiator(org.glassfish.grizzly.Transport, org.glassfish.grizzly.npn.AlpnClientNegotiator)
{
org.glassfish.grizzly.Transport v;
org.glassfish.grizzly.npn.AlpnClientNegotiator v;
org.glassfish.grizzly.http.AlpnSupport v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Transport;
v := @parameter: org.glassfish.grizzly.npn.AlpnClientNegotiator;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport: void putClientSideNegotiator(java.lang.Object,org.glassfish.grizzly.npn.AlpnClientNegotiator)>(v, v);
return;
}
public void setClientSideNegotiator(org.glassfish.grizzly.Connection, org.glassfish.grizzly.npn.AlpnClientNegotiator)
{
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.npn.AlpnClientNegotiator v;
org.glassfish.grizzly.http.AlpnSupport v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Connection;
v := @parameter: org.glassfish.grizzly.npn.AlpnClientNegotiator;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport: void putClientSideNegotiator(java.lang.Object,org.glassfish.grizzly.npn.AlpnClientNegotiator)>(v, v);
return;
}
private void putServerSideNegotiator(java.lang.Object, org.glassfish.grizzly.npn.AlpnServerNegotiator)
{
java.lang.Throwable v;
org.glassfish.grizzly.http.AlpnSupport v;
java.util.concurrent.locks.Lock v, v, v;
java.util.Map v;
java.lang.Object v;
java.util.concurrent.locks.ReadWriteLock v, v, v;
org.glassfish.grizzly.npn.AlpnServerNegotiator v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: java.lang.Object;
v := @parameter: org.glassfish.grizzly.npn.AlpnServerNegotiator;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map serverSideNegotiators>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void putClientSideNegotiator(java.lang.Object, org.glassfish.grizzly.npn.AlpnClientNegotiator)
{
java.lang.Throwable v;
org.glassfish.grizzly.http.AlpnSupport v;
org.glassfish.grizzly.npn.AlpnClientNegotiator v;
java.util.concurrent.locks.Lock v, v, v;
java.util.Map v;
java.lang.Object v;
java.util.concurrent.locks.ReadWriteLock v, v, v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: java.lang.Object;
v := @parameter: org.glassfish.grizzly.npn.AlpnClientNegotiator;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map clientSideNegotiators>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private org.glassfish.grizzly.npn.AlpnClientNegotiator getClientNegotiator(org.glassfish.grizzly.Connection)
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport v;
org.glassfish.grizzly.http.AlpnSupport v;
java.util.concurrent.locks.Lock v, v, v;
java.util.Map v, v;
org.glassfish.grizzly.Connection v;
java.lang.Object v;
java.util.concurrent.locks.ReadWriteLock v, v, v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Connection;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map clientSideNegotiators>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map clientSideNegotiators>;
v = interfaceinvoke v.<org.glassfish.grizzly.Connection: org.glassfish.grizzly.Transport getTransport()>();
interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock clientSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private org.glassfish.grizzly.npn.AlpnServerNegotiator getServerNegotiator(org.glassfish.grizzly.Connection)
{
java.lang.Throwable v;
org.glassfish.grizzly.Transport v;
org.glassfish.grizzly.http.AlpnSupport v;
java.util.concurrent.locks.Lock v, v, v;
java.util.Map v, v;
org.glassfish.grizzly.Connection v;
java.lang.Object v;
java.util.concurrent.locks.ReadWriteLock v, v, v;
v := @this: org.glassfish.grizzly.http.AlpnSupport;
v := @parameter: org.glassfish.grizzly.Connection;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map serverSideNegotiators>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.Map serverSideNegotiators>;
v = interfaceinvoke v.<org.glassfish.grizzly.Connection: org.glassfish.grizzly.Transport getTransport()>();
interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.glassfish.grizzly.http.AlpnSupport: java.util.concurrent.locks.ReadWriteLock serverSideLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
org.glassfish.grizzly.http.AlpnSupport v;
org.glassfish.grizzly.http.AplnExtensionCompatibility v, v;
java.util.logging.Logger v, v;
java.util.function.Supplier v;
java.util.WeakHashMap v;
boolean v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/http2/AlpnSupport;");
<org.glassfish.grizzly.http.AlpnSupport: java.util.logging.Logger LOGGER> = v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
<org.glassfish.grizzly.http.AlpnSupport: java.util.Map SSL_TO_CONNECTION_MAP> = v;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility: org.glassfish.grizzly.http.AplnExtensionCompatibility getInstance()>();
<org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.http.AplnExtensionCompatibility COMPATIBILITY> = v;
v = <org.glassfish.grizzly.http.AlpnSupport: java.util.logging.Logger LOGGER>;
v = staticinvoke <org.glassfish.grizzly.http.AlpnSupport$lambda_static_0__2: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<java.util.logging.Logger: void config(java.util.function.Supplier)>(v);
v = <org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.http.AplnExtensionCompatibility COMPATIBILITY>;
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isAlpnExtensionAvailable()>();
if v == 0 goto label;
v = new org.glassfish.grizzly.http.AlpnSupport;
specialinvoke v.<org.glassfish.grizzly.http.AlpnSupport: void <init>()>();
goto label;
label:
v = null;
label:
<org.glassfish.grizzly.http.AlpnSupport: org.glassfish.grizzly.http.AlpnSupport INSTANCE> = v;
return;
}
}