class org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker extends org.apache.zookeeper.server.ZooKeeperThread { java.lang.Long sid; java.net.Socket sock; org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker recvWorker; volatile boolean running; java.io.DataOutputStream dout; java.util.concurrent.atomic.AtomicBoolean ongoingAsyncValidation; final org.apache.zookeeper.server.quorum.QuorumCnxManager this$0; void (org.apache.zookeeper.server.quorum.QuorumCnxManager, java.net.Socket, java.lang.Long) { java.io.OutputStream v; java.net.Socket v; org.slf4j.Logger v, v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; java.util.concurrent.atomic.AtomicBoolean v; java.io.IOException v; org.apache.zookeeper.server.quorum.QuorumCnxManager v; java.io.DataOutputStream v; java.lang.Long v, v; java.lang.String v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v := @parameter: org.apache.zookeeper.server.quorum.QuorumCnxManager; v := @parameter: java.net.Socket; v := @parameter: java.lang.Long; v. = v; v = dynamicinvoke "makeConcatWithConstants" (v) ("SendWorker:\u0001"); specialinvoke v.(java.lang.String)>(v); v. = 1; v = new java.util.concurrent.atomic.AtomicBoolean; specialinvoke v.(boolean)>(0); v. = v; v. = v; v. = v; v. = null; label: v = new java.io.DataOutputStream; v = virtualinvoke v.(); specialinvoke v.(java.io.OutputStream)>(v); v. = v; label: goto label; label: v := @caughtexception; v = ; interfaceinvoke v.("Unable to access socket output stream", v); specialinvoke v.(v); v. = 0; label: v = ; v = v.; interfaceinvoke v.("Address of remote peer: {}", v); return; catch java.io.IOException from label to label with label; } synchronized void setRecv(org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker) { org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v := @parameter: org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker; v. = v; return; } synchronized org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker getRecvWorker() { org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v = v.; return v; } synchronized boolean finish() { java.net.Socket v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; java.lang.Long v, v, v; java.util.concurrent.atomic.AtomicInteger v; boolean v, v, v; org.slf4j.Logger v, v; java.util.concurrent.ConcurrentHashMap v; org.apache.zookeeper.server.quorum.QuorumCnxManager v, v, v; org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker v, v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v = ; v = v.; interfaceinvoke v.("Calling SendWorker.finish for {}", v); v = v.; if v != 0 goto label; v = v.; return v; label: v. = 0; v = v.; v = v.; specialinvoke v.(v); virtualinvoke v.(); v = v.; if v == null goto label; v = v.; virtualinvoke v.(); label: v = ; v = v.; interfaceinvoke v.("Removing entry from senderWorkerMap sid={}", v); v = v.; v = v.; v = v.; virtualinvoke v.(v, v); v = v.; v = v.; virtualinvoke v.(); v = v.; return v; } synchronized void send(java.nio.ByteBuffer) throws java.io.IOException { byte[] v, v; org.slf4j.Logger v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; java.nio.BufferUnderflowException v; java.nio.ByteBuffer v; java.io.DataOutputStream v, v, v; int v, v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v := @parameter: java.nio.ByteBuffer; v = virtualinvoke v.(); v = newarray (byte)[v]; label: virtualinvoke v.(0); virtualinvoke v.(v); label: goto label; label: v := @caughtexception; v = ; interfaceinvoke v.("BufferUnderflowException ", v); return; label: v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); v = v.; v = virtualinvoke v.(); virtualinvoke v.(v); v = v.; virtualinvoke v.(); return; catch java.nio.BufferUnderflowException from label to label with label; } public void run() { org.apache.zookeeper.server.quorum.QuorumPeer v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; java.nio.ByteBuffer v; java.lang.Long v, v, v, v, v, v, v, v, v, v, v, v; java.util.concurrent.atomic.AtomicInteger v; boolean v, v, v; java.util.concurrent.ConcurrentHashMap v, v, v, v; org.apache.zookeeper.server.quorum.QuorumCnxManager v, v, v, v, v, v, v, v, v, v, v; java.lang.Exception v; java.net.Socket v; java.lang.Object[] v; long v, v, v; org.slf4j.Logger v, v, v, v, v, v, v; java.io.IOException v; java.util.concurrent.TimeUnit v; java.lang.InterruptedException v; java.lang.Object v, v, v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v = v.; v = v.; virtualinvoke v.(); label: v = v.; v = v.; v = v.; v = virtualinvoke v.(v); if v == null goto label; v = v.; v = specialinvoke v.(v); if v == 0 goto label; label: v = v.; v = v.; v = v.; v = virtualinvoke v.(v); if v == null goto label; v = ; v = v.; interfaceinvoke v.("Attempting to send lastMessage to sid={}", v); virtualinvoke v.(v); label: goto label; label: v := @caughtexception; v = ; interfaceinvoke v.("Failed to send last message. Shutting down thread.", v); virtualinvoke v.(); label: v = ; v = v.; v = v.; v = v.; v = staticinvoke (v); interfaceinvoke v.("SendWorker thread started towards {}. myId: {}", v, v); label: v = v.; if v == 0 goto label; v = v.; v = v.; if v != 0 goto label; v = v.; if v == null goto label; label: v = v.; v = v.; v = v.; v = virtualinvoke v.(v); if v == null goto label; v = v.; v = ; v = specialinvoke v.(v, 1000L, v); goto label; label: v = ; v = v.; interfaceinvoke v.("No queue of incoming messages for server {}", v); label: goto label; label: if v == null goto label; v = v.; v = v.; v = v.; virtualinvoke v.(v, v); virtualinvoke v.(v); label: goto label; label: v := @caughtexception; v = ; interfaceinvoke v.("Interrupted while waiting for message on queue", v); goto label; label: v := @caughtexception; v = ; v = newarray (java.lang.Object)[3]; v = v.; v[0] = v; v = v.; v = v.; v = staticinvoke (v); v[1] = v; v[2] = v; interfaceinvoke v.("Exception when using channel: for id {} my id = {}", v); label: virtualinvoke v.(); v = ; v = v.; v = v.; v = v.; v = virtualinvoke v.(); v = staticinvoke (v); interfaceinvoke v.("Send worker leaving thread id {} my id = {}", v, v); return; catch java.io.IOException from label to label with label; catch java.lang.InterruptedException from label to label with label; catch java.lang.InterruptedException from label to label with label; catch java.lang.Exception from label to label with label; } public void asyncValidateIfSocketIsStillReachable() { org.slf4j.Logger v; java.lang.Long v; java.lang.Thread v; org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker v; java.util.concurrent.atomic.AtomicBoolean v; java.lang.Runnable v; boolean v; v := @this: org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker; v = v.; v = virtualinvoke v.(0, 1); if v == 0 goto label; v = new java.lang.Thread; v = staticinvoke (v); specialinvoke v.(java.lang.Runnable)>(v); virtualinvoke v.(); goto label; label: v = ; v = v.; interfaceinvoke v.("validation of destination address for sid {} is skipped (it is already running)", v); label: return; } }