public class oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor extends oadd.org.apache.zookeeper.server.ZooKeeperCriticalThread implements oadd.org.apache.zookeeper.server.RequestProcessor
{
private static final org.slf4j.Logger LOG;
private final java.util.concurrent.LinkedBlockingQueue queuedRequests;
private boolean finished;
private final oadd.org.apache.zookeeper.server.RequestProcessor nextProcessor;
private final oadd.org.apache.zookeeper.server.ZooKeeperServer zks;
public void <init>(oadd.org.apache.zookeeper.server.ZooKeeperServer, oadd.org.apache.zookeeper.server.RequestProcessor)
{
oadd.org.apache.zookeeper.server.ZooKeeperServerListener v;
long v;
oadd.org.apache.zookeeper.server.RequestProcessor v;
oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor v;
java.lang.String v;
oadd.org.apache.zookeeper.server.ZooKeeperServer v;
java.util.concurrent.LinkedBlockingQueue v;
v := @this: oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor;
v := @parameter: oadd.org.apache.zookeeper.server.ZooKeeperServer;
v := @parameter: oadd.org.apache.zookeeper.server.RequestProcessor;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZooKeeperServer: long getServerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ReadOnlyRequestProcessor:\u0001");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZooKeeperServer: oadd.org.apache.zookeeper.server.ZooKeeperServerListener getZooKeeperServerListener()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.ZooKeeperCriticalThread: void <init>(java.lang.String,oadd.org.apache.zookeeper.server.ZooKeeperServerListener)>(v, v);
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.util.concurrent.LinkedBlockingQueue queuedRequests> = v;
v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: boolean finished> = 0;
v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.ZooKeeperServer zks> = v;
v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.RequestProcessor nextProcessor> = v;
return;
}
public void run()
{
oadd.org.apache.zookeeper.server.ServerCnxn v;
boolean v, v, v;
java.util.concurrent.LinkedBlockingQueue v;
java.lang.Exception v;
oadd.org.apache.zookeeper.server.Request v;
oadd.org.apache.zookeeper.server.ZKDatabase v;
oadd.org.apache.zookeeper.server.RequestProcessor v, v;
oadd.org.apache.zookeeper.server.RequestProcessor$RequestProcessorException v;
java.lang.Throwable v, v;
oadd.org.apache.zookeeper.KeeperException$Code v;
long v, v;
oadd.org.apache.zookeeper.server.ZooKeeperServer v;
int v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor v;
java.lang.String v, v, v;
org.slf4j.Logger v, v, v, v, v;
java.io.IOException v;
java.lang.Object v;
oadd.org.apache.zookeeper.proto.ReplyHeader v;
v := @this: oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: boolean finished>;
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.util.concurrent.LinkedBlockingQueue queuedRequests>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object take()>();
v = 2L;
v = v.<oadd.org.apache.zookeeper.server.Request: int type>;
if v != 11 goto label;
v = 8L;
label:
v = <oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG>;
staticinvoke <oadd.org.apache.zookeeper.server.ZooTrace: void logRequest(org.slf4j.Logger,long,char,oadd.org.apache.zookeeper.server.Request,java.lang.String)>(v, v, 82, v, "");
label:
v = <oadd.org.apache.zookeeper.server.Request: oadd.org.apache.zookeeper.server.Request requestOfDeath>;
if v == v goto label;
v = v.<oadd.org.apache.zookeeper.server.Request: int type>;
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
case 14: goto label;
case 15: goto label;
case 16: goto label;
case 17: goto label;
case 18: goto label;
case 19: goto label;
case 20: goto label;
case 21: goto label;
default: goto label;
};
label:
v = new oadd.org.apache.zookeeper.proto.ReplyHeader;
v = v.<oadd.org.apache.zookeeper.server.Request: int cxid>;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.ZooKeeperServer zks>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZooKeeperServer: oadd.org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
v = <oadd.org.apache.zookeeper.KeeperException$Code: oadd.org.apache.zookeeper.KeeperException$Code NOTREADONLY>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.KeeperException$Code: int intValue()>();
specialinvoke v.<oadd.org.apache.zookeeper.proto.ReplyHeader: void <init>(int,long,int)>(v, v, v);
label:
v = v.<oadd.org.apache.zookeeper.server.Request: oadd.org.apache.zookeeper.server.ServerCnxn cnxn>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.ServerCnxn: void sendResponse(oadd.org.apache.zookeeper.proto.ReplyHeader,oadd.org.apache.jute.Record,java.lang.String)>(v, null, null);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("IO exception while sending response", v);
goto label;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.RequestProcessor nextProcessor>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.RequestProcessor nextProcessor>;
interfaceinvoke v.<oadd.org.apache.zookeeper.server.RequestProcessor: void processRequest(oadd.org.apache.zookeeper.server.Request)>(v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.RequestProcessor$RequestProcessorException: java.lang.Throwable getCause()>();
v = v instanceof oadd.org.apache.zookeeper.server.quorum.Leader$XidRolloverException;
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.RequestProcessor$RequestProcessorException: java.lang.Throwable getCause()>();
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.lang.String getName()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: void handleException(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.lang.String getName()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: void handleException(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("ReadOnlyRequestProcessor exited loop!");
return;
catch java.io.IOException from label to label with label;
catch oadd.org.apache.zookeeper.server.RequestProcessor$RequestProcessorException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void processRequest(oadd.org.apache.zookeeper.server.Request)
{
oadd.org.apache.zookeeper.server.Request v;
oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor v;
java.util.concurrent.LinkedBlockingQueue v;
boolean v;
v := @this: oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor;
v := @parameter: oadd.org.apache.zookeeper.server.Request;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: boolean finished>;
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.util.concurrent.LinkedBlockingQueue queuedRequests>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
label:
return;
}
public void shutdown()
{
oadd.org.apache.zookeeper.server.Request v;
oadd.org.apache.zookeeper.server.RequestProcessor v;
oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor v;
java.util.concurrent.LinkedBlockingQueue v, v;
v := @this: oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor;
v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: boolean finished> = 1;
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.util.concurrent.LinkedBlockingQueue queuedRequests>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: void clear()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: java.util.concurrent.LinkedBlockingQueue queuedRequests>;
v = <oadd.org.apache.zookeeper.server.Request: oadd.org.apache.zookeeper.server.Request requestOfDeath>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: oadd.org.apache.zookeeper.server.RequestProcessor nextProcessor>;
interfaceinvoke v.<oadd.org.apache.zookeeper.server.RequestProcessor: void shutdown()>();
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/zookeeper/server/quorum/ReadOnlyRequestProcessor;");
<oadd.org.apache.zookeeper.server.quorum.ReadOnlyRequestProcessor: org.slf4j.Logger LOG> = v;
return;
}
}