public class org.apache.zookeeper.server.SessionTrackerTest extends org.apache.zookeeper.ZKTestCase
{
private final long sessionId;
private final int sessionTimeout;
private org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor firstProcessor;
private java.util.concurrent.CountDownLatch latch;
public void <init>()
{
org.apache.zookeeper.server.SessionTrackerTest v;
v := @this: org.apache.zookeeper.server.SessionTrackerTest;
specialinvoke v.<org.apache.zookeeper.ZKTestCase: void <init>()>();
v.<org.apache.zookeeper.server.SessionTrackerTest: long sessionId> = 339900L;
v.<org.apache.zookeeper.server.SessionTrackerTest: int sessionTimeout> = 3000;
return;
}
public void testAddSessionAfterSessionExpiry() throws java.lang.Exception
{
java.lang.Throwable v;
java.lang.Long v;
org.apache.zookeeper.server.SessionTracker v, v;
int v;
org.apache.zookeeper.server.SessionTrackerTest v;
boolean v, v;
org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor v;
java.util.concurrent.ConcurrentHashMap v;
java.util.concurrent.TimeUnit v;
org.apache.zookeeper.server.ZooKeeperServer v;
java.util.concurrent.CountDownLatch v, v;
java.lang.Object v, v;
v := @this: org.apache.zookeeper.server.SessionTrackerTest;
staticinvoke <org.apache.zookeeper.server.RequestThrottler: void setMaxRequests(int)>(0);
v = specialinvoke v.<org.apache.zookeeper.server.SessionTrackerTest: org.apache.zookeeper.server.ZooKeeperServer setupSessionTracker()>();
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v.<org.apache.zookeeper.server.SessionTrackerTest: java.util.concurrent.CountDownLatch latch> = v;
v = v.<org.apache.zookeeper.server.ZooKeeperServer: org.apache.zookeeper.server.SessionTracker sessionTracker>;
interfaceinvoke v.<org.apache.zookeeper.server.SessionTracker: boolean trackSession(long,int)>(339900L, 3000);
v = v.<org.apache.zookeeper.server.ZooKeeperServer: org.apache.zookeeper.server.SessionTracker sessionTracker>;
v = v.<org.apache.zookeeper.server.SessionTrackerImpl: java.util.concurrent.ConcurrentHashMap sessionsById>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(339900L);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
staticinvoke <org.junit.jupiter.api.Assertions: void assertNotNull(java.lang.Object,java.lang.String)>(v, "Sessionid:339900 doesn\'t exists in sessiontracker");
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: void checkSession(long,java.lang.Object)>(339900L, v);
v = v.<org.apache.zookeeper.server.SessionTrackerTest: java.util.concurrent.CountDownLatch latch>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(6000L, v);
virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: boolean trackSession(long,int)>(339900L, 3000);
label:
virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: void checkSession(long,java.lang.Object)>(339900L, v);
staticinvoke <org.junit.jupiter.api.Assertions: java.lang.Object fail(java.lang.String)>("Should throw session expiry exception as the session has expired and closed");
label:
goto label;
label:
v := @caughtexception;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl$SessionImpl: boolean isClosing()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean,java.lang.String)>(v, "Session didn\'t expired");
v = virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: boolean touchSession(long,int)>(339900L, 3000);
staticinvoke <org.junit.jupiter.api.Assertions: void assertFalse(boolean,java.lang.String)>(v, "Session didn\'t expired");
v = v.<org.apache.zookeeper.server.SessionTrackerTest: org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor firstProcessor>;
v = virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor: int getCountOfCloseSessionReq()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int,java.lang.String)>(1, v, "Duplicate session expiry request has been generated");
return;
catch org.apache.zookeeper.KeeperException$SessionExpiredException from label to label with label;
}
public void testCloseSessionRequestAfterSessionExpiry() throws java.lang.Exception
{
java.util.concurrent.ConcurrentHashMap v, v;
java.util.concurrent.TimeUnit v;
org.apache.zookeeper.server.ZooKeeperServer v;
java.util.concurrent.CountDownLatch v, v;
java.lang.Long v, v;
org.apache.zookeeper.server.SessionTracker v, v;
java.lang.Object v, v, v;
org.apache.zookeeper.server.SessionTrackerTest v;
v := @this: org.apache.zookeeper.server.SessionTrackerTest;
v = specialinvoke v.<org.apache.zookeeper.server.SessionTrackerTest: org.apache.zookeeper.server.ZooKeeperServer setupSessionTracker()>();
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
v.<org.apache.zookeeper.server.SessionTrackerTest: java.util.concurrent.CountDownLatch latch> = v;
v = v.<org.apache.zookeeper.server.ZooKeeperServer: org.apache.zookeeper.server.SessionTracker sessionTracker>;
interfaceinvoke v.<org.apache.zookeeper.server.SessionTracker: boolean trackSession(long,int)>(339900L, 3000);
v = v.<org.apache.zookeeper.server.ZooKeeperServer: org.apache.zookeeper.server.SessionTracker sessionTracker>;
v = v.<org.apache.zookeeper.server.SessionTrackerImpl: java.util.concurrent.ConcurrentHashMap sessionsById>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(339900L);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
staticinvoke <org.junit.jupiter.api.Assertions: void assertNotNull(java.lang.Object,java.lang.String)>(v, "Sessionid:339900 doesn\'t exists in sessiontracker");
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: void checkSession(long,java.lang.Object)>(339900L, v);
v = v.<org.apache.zookeeper.server.SessionTrackerTest: java.util.concurrent.CountDownLatch latch>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(6000L, v);
virtualinvoke v.<org.apache.zookeeper.server.SessionTrackerImpl: void removeSession(long)>(339900L);
v = v.<org.apache.zookeeper.server.SessionTrackerImpl: java.util.concurrent.ConcurrentHashMap sessionsById>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(339900L);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
staticinvoke <org.junit.jupiter.api.Assertions: void assertNull(java.lang.Object,java.lang.String)>(v, "Session:339900 still exists after removal");
return;
}
private org.apache.zookeeper.server.ZooKeeperServer setupSessionTracker() throws java.io.IOException
{
org.apache.zookeeper.server.ZooKeeperServer v;
org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor v, v;
org.apache.zookeeper.server.SessionTrackerTest v;
java.io.File v;
v := @this: org.apache.zookeeper.server.SessionTrackerTest;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: java.io.File createTmpDir()>();
staticinvoke <org.apache.zookeeper.test.ClientBase: void setupTestEnv()>();
v = new org.apache.zookeeper.server.ZooKeeperServer;
specialinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void <init>(java.io.File,java.io.File,int)>(v, v, 3000);
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void setupRequestProcessors()>();
v = new org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor;
specialinvoke v.<org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor: void <init>(org.apache.zookeeper.server.SessionTrackerTest,org.apache.zookeeper.server.ZooKeeperServer,org.apache.zookeeper.server.RequestProcessor)>(v, v, null);
v.<org.apache.zookeeper.server.SessionTrackerTest: org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor firstProcessor> = v;
v = v.<org.apache.zookeeper.server.SessionTrackerTest: org.apache.zookeeper.server.SessionTrackerTest$FirstProcessor firstProcessor>;
v.<org.apache.zookeeper.server.ZooKeeperServer: org.apache.zookeeper.server.RequestProcessor firstProcessor> = v;
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void createSessionTracker()>();
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void startSessionTracker()>();
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void startRequestThrottler()>();
return v;
}
}