public class org.apache.zookeeper.server.CRCTest extends org.apache.zookeeper.ZKTestCase
{
private static final org.slf4j.Logger LOG;
private static final java.lang.String HOSTPORT;
public void <init>()
{
org.apache.zookeeper.server.CRCTest v;
v := @this: org.apache.zookeeper.server.CRCTest;
specialinvoke v.<org.apache.zookeeper.ZKTestCase: void <init>()>();
return;
}
private void corruptFile(java.io.File) throws java.io.IOException
{
byte[] v;
java.io.RandomAccessFile v;
java.lang.String v;
java.io.File v;
org.apache.zookeeper.server.CRCTest v;
v := @this: org.apache.zookeeper.server.CRCTest;
v := @parameter: java.io.File;
v = new java.io.RandomAccessFile;
specialinvoke v.<java.io.RandomAccessFile: void <init>(java.io.File,java.lang.String)>(v, "rw");
v = "mahadev";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.RandomAccessFile: void seek(long)>(500L);
virtualinvoke v.<java.io.RandomAccessFile: void write(byte[])>(v);
virtualinvoke v.<java.io.RandomAccessFile: void close()>();
return;
}
private boolean getCheckSum(java.io.File) throws java.io.IOException
{
java.util.zip.CheckedInputStream v;
java.io.BufferedInputStream v;
java.util.concurrent.ConcurrentHashMap v;
java.io.IOException v;
long v, v;
java.io.FileInputStream v;
java.io.File v;
org.apache.jute.BinaryInputArchive v;
java.util.zip.Checksum v;
byte v;
java.util.zip.Adler v;
org.apache.zookeeper.server.DataTree v;
boolean v;
org.apache.zookeeper.server.CRCTest v;
v := @this: org.apache.zookeeper.server.CRCTest;
v := @parameter: java.io.File;
v = new org.apache.zookeeper.server.DataTree;
specialinvoke v.<org.apache.zookeeper.server.DataTree: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = new java.io.BufferedInputStream;
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
specialinvoke v.<java.io.BufferedInputStream: void <init>(java.io.InputStream)>(v);
v = new java.util.zip.CheckedInputStream;
v = new java.util.zip.Adler;
specialinvoke v.<java.util.zip.Adler32: void <init>()>();
specialinvoke v.<java.util.zip.CheckedInputStream: void <init>(java.io.InputStream,java.util.zip.Checksum)>(v, v);
v = staticinvoke <org.apache.jute.BinaryInputArchive: org.apache.jute.BinaryInputArchive getArchive(java.io.InputStream)>(v);
label:
staticinvoke <org.apache.zookeeper.server.persistence.FileSnap: void deserialize(org.apache.zookeeper.server.DataTree,java.util.Map,org.apache.jute.InputArchive)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.io.InputStream: void close()>();
virtualinvoke v.<java.util.zip.CheckedInputStream: void close()>();
throw v;
label:
v = virtualinvoke v.<java.util.zip.CheckedInputStream: java.util.zip.Checksum getChecksum()>();
v = interfaceinvoke v.<java.util.zip.Checksum: long getValue()>();
v = interfaceinvoke v.<org.apache.jute.InputArchive: long readLong(java.lang.String)>("val");
virtualinvoke v.<java.io.InputStream: void close()>();
virtualinvoke v.<java.util.zip.CheckedInputStream: void close()>();
v = v cmp v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch java.io.IOException from label to label with label;
}
public void testChecksums() throws java.lang.Exception
{
org.apache.zookeeper.CreateMode v;
org.apache.zookeeper.server.persistence.FileTxnLog v;
byte[] v;
boolean v, v, v, v, v;
org.apache.zookeeper.ZooKeeper v;
java.util.List v;
org.apache.zookeeper.server.persistence.FileSnap v;
org.apache.zookeeper.server.CRCTest v;
java.lang.Throwable v;
org.apache.zookeeper.server.persistence.TxnLog$TxnIterator v;
java.lang.String[] v;
org.apache.zookeeper.server.ServerCnxnFactory v;
java.util.ArrayList v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
java.io.IOException v, v;
java.io.File v, v, v;
org.apache.zookeeper.server.ZooKeeperServer v;
java.lang.Object v, v;
java.io.File[] v;
v := @this: org.apache.zookeeper.server.CRCTest;
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);
staticinvoke <org.apache.zookeeper.server.SyncRequestProcessor: void setSnapCount(int)>(150);
v = <org.apache.zookeeper.server.CRCTest: java.lang.String HOSTPORT>;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(":");
v = v[1];
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
v = (int) -1;
v = staticinvoke <org.apache.zookeeper.server.ServerCnxnFactory: org.apache.zookeeper.server.ServerCnxnFactory createFactory(int,int)>(v, v);
virtualinvoke v.<org.apache.zookeeper.server.ServerCnxnFactory: void startup(org.apache.zookeeper.server.ZooKeeperServer)>(v);
v = <org.apache.zookeeper.server.CRCTest: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("starting up the zookeeper server .. waiting");
v = <org.apache.zookeeper.server.CRCTest: java.lang.String HOSTPORT>;
v = <org.apache.zookeeper.test.ClientBase: int CONNECTION_TIMEOUT>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: boolean waitForServerUp(java.lang.String,long)>(v, v);
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean,java.lang.String)>(v, "waiting for server being up");
v = <org.apache.zookeeper.server.CRCTest: java.lang.String HOSTPORT>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: org.apache.zookeeper.ZooKeeper createZKClient(java.lang.String)>(v);
label:
v = 0;
label:
if v >= 2000 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("/crctest- \u0001");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("/crctest- \u0001");
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
v = <org.apache.zookeeper.ZooDefs$Ids: java.util.ArrayList OPEN_ACL_UNSAFE>;
v = <org.apache.zookeeper.CreateMode: org.apache.zookeeper.CreateMode PERSISTENT>;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: java.lang.String create(java.lang.String,byte[],java.util.List,org.apache.zookeeper.CreateMode)>(v, v, v, v);
v = v + 1;
goto label;
label:
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void close()>();
throw v;
label:
virtualinvoke v.<org.apache.zookeeper.server.ServerCnxnFactory: void shutdown()>();
virtualinvoke v.<org.apache.zookeeper.server.ZooKeeperServer: void shutdown()>();
v = <org.apache.zookeeper.server.CRCTest: java.lang.String HOSTPORT>;
v = <org.apache.zookeeper.test.ClientBase: int CONNECTION_TIMEOUT>;
v = staticinvoke <org.apache.zookeeper.test.ClientBase: boolean waitForServerDown(java.lang.String,long)>(v, v);
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean,java.lang.String)>(v, "waiting for server down");
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, "version-2");
v = virtualinvoke v.<java.io.File: java.io.File[] listFiles()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = <org.apache.zookeeper.server.CRCTest: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("file is {}", v);
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("log");
if v == 0 goto label;
specialinvoke v.<org.apache.zookeeper.server.CRCTest: void corruptFile(java.io.File)>(v);
label:
v = v + 1;
goto label;
label:
v = new org.apache.zookeeper.server.persistence.FileTxnLog;
specialinvoke v.<org.apache.zookeeper.server.persistence.FileTxnLog: void <init>(java.io.File)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnLog: org.apache.zookeeper.server.persistence.TxnLog$TxnIterator read(long)>(1L);
label:
v = interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: boolean next()>();
if v != 0 goto label;
staticinvoke <org.junit.jupiter.api.Assertions: java.lang.Object fail()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.CRCTest: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("crc corruption", v);
label:
interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: void close()>();
v = new org.apache.zookeeper.server.persistence.FileSnap;
specialinvoke v.<org.apache.zookeeper.server.persistence.FileSnap: void <init>(java.io.File)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileSnap: java.util.List findNRecentSnapshots(int)>(2);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
specialinvoke v.<org.apache.zookeeper.server.CRCTest: void corruptFile(java.io.File)>(v);
label:
v = specialinvoke v.<org.apache.zookeeper.server.CRCTest: boolean getCheckSum(java.io.File)>(v);
label:
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
specialinvoke v.<org.apache.zookeeper.server.CRCTest: void corruptFile(java.io.File)>(v);
v = specialinvoke v.<org.apache.zookeeper.server.CRCTest: boolean getCheckSum(java.io.File)>(v);
label:
staticinvoke <org.junit.jupiter.api.Assertions: void assertTrue(boolean)>(v);
return;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
int v;
java.lang.String v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/CRCTest;");
<org.apache.zookeeper.server.CRCTest: org.slf4j.Logger LOG> = v;
v = staticinvoke <org.apache.zookeeper.PortAssignment: int unique()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("127.0.0.1:\u0001");
<org.apache.zookeeper.server.CRCTest: java.lang.String HOSTPORT> = v;
return;
}
}