public class org.apache.zookeeper.server.persistence.TxnLogToolkit extends java.lang.Object implements java.io.Closeable
{
private java.io.File txnLogFile;
private boolean recoveryMode;
private boolean verbose;
private java.io.FileInputStream txnFis;
private org.apache.jute.BinaryInputArchive logStream;
private int crcFixed;
private java.io.FileOutputStream recoveryFos;
private org.apache.jute.BinaryOutputArchive recoveryOa;
private java.io.File recoveryLogFile;
private org.apache.zookeeper.server.persistence.FilePadding filePadding;
private boolean force;
private long zxid;
public static void main(java.lang.String[]) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.commons.cli.Options v;
java.util.Scanner v;
java.lang.String[] v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException v;
int v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v, v, v;
boolean v;
java.io.PrintStream v, v;
java.io.InputStream v;
v := @parameter: java.lang.String[];
label:
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.zookeeper.server.persistence.TxnLogToolkit parseCommandLine(java.lang.String[])>(v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean isDumpMode()>();
if v == 0 goto label;
v = new java.util.Scanner;
v = <java.lang.System: java.io.InputStream in>;
specialinvoke v.<java.util.Scanner: void <init>(java.io.InputStream)>(v);
virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void dump(java.util.Scanner)>(v);
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printStat()>();
goto label;
label:
virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void chop()>();
label:
virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream err>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("\u0001\n");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException: int getExitCode()>();
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException: org.apache.commons.cli.Options getOptions()>();
staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: void printHelpAndExit(int,org.apache.commons.cli.Options)>(v, v);
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream err>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: java.lang.String getMessage()>();
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: int getExitCode()>();
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException from label to label with label;
catch org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException from label to label with label;
}
public void <init>(boolean, boolean, java.lang.String, boolean) throws java.io.FileNotFoundException, org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException
{
java.lang.Object[] v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v;
org.apache.zookeeper.server.persistence.FilePadding v;
int v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v, v, v;
boolean v, v, v, v;
org.apache.zookeeper.server.ExitCode v;
java.io.File v, v, v, v, v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean verbose> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed> = 0;
v = new org.apache.zookeeper.server.persistence.FilePadding;
specialinvoke v.<org.apache.zookeeper.server.persistence.FilePadding: void <init>()>();
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.zookeeper.server.persistence.FilePadding filePadding> = v;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean force> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid> = -1L;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode> = v;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean verbose> = v;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean force> = v;
v = specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File loadTxnFile(java.lang.String)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile> = v;
if v == 0 goto label;
v = new java.io.File;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("\u.fixed");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File recoveryLogFile> = v;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File recoveryLogFile>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[1];
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File recoveryLogFile>;
v[0] = v;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "Recovery file %s already exists or not writable", v);
throw v;
label:
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void openTxnLogFile()>();
if v == 0 goto label;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void openRecoveryFile()>();
label:
return;
}
public void <init>(java.lang.String, java.lang.String) throws org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException
{
org.apache.zookeeper.server.persistence.FilePadding v;
java.lang.Long v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
long v;
java.lang.String v, v;
java.io.File v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean verbose> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed> = 0;
v = new org.apache.zookeeper.server.persistence.FilePadding;
specialinvoke v.<org.apache.zookeeper.server.persistence.FilePadding: void <init>()>();
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.zookeeper.server.persistence.FilePadding filePadding> = v;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean force> = 0;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid> = -1L;
v = specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File loadTxnFile(java.lang.String)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile> = v;
v = staticinvoke <java.lang.Long: java.lang.Long decode(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid> = v;
return;
}
private java.io.File loadTxnFile(java.lang.String) throws org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException
{
java.lang.Object[] v;
org.apache.zookeeper.server.ExitCode v;
java.io.File v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v;
int v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean canRead()>();
if v != 0 goto label;
label:
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[1];
v[0] = v;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "File doesn\'t exist or not readable: %s", v);
throw v;
label:
return v;
}
public void dump(java.util.Scanner) throws java.lang.Exception
{
byte[] v;
org.apache.jute.BinaryOutputArchive v, v, v, v;
java.util.Scanner v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v, v;
org.apache.zookeeper.server.persistence.FilePadding v, v;
byte v, v;
java.util.zip.Adler v;
boolean v, v, v, v, v, v, v;
java.io.EOFException v;
java.lang.Object[] v, v;
long v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v, v, v, v;
java.io.PrintStream v, v, v;
org.apache.zookeeper.server.persistence.FileHeader v;
java.io.FileOutputStream v, v, v;
org.apache.zookeeper.server.ExitCode v, v;
java.io.File v;
org.apache.jute.BinaryInputArchive v, v, v, v;
java.nio.channels.FileChannel v, v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: java.util.Scanner;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed> = 0;
v = new org.apache.zookeeper.server.persistence.FileHeader;
specialinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: void <init>()>();
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryInputArchive logStream>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: void deserialize(org.apache.jute.InputArchive,java.lang.String)>(v, "fileheader");
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: int getMagic()>();
v = <org.apache.zookeeper.server.persistence.FileTxnLog: int TXNLOG_MAGIC>;
if v == v goto label;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode INVALID_INVOCATION>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[1];
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v[0] = v;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "Invalid magic number for %s", v);
throw v;
label:
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: long getDbid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: int getVersion()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,int)>(v, 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[])>("ZooKeeper Transactional Log File with dbid \u txnlog format version \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryOutputArchive recoveryOa>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileHeader: void serialize(org.apache.jute.OutputArchive,java.lang.String)>(v, "fileheader");
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
virtualinvoke v.<java.io.FileOutputStream: void flush()>();
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.zookeeper.server.persistence.FilePadding filePadding>;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
v = virtualinvoke v.<java.io.FileOutputStream: java.nio.channels.FileChannel getChannel()>();
v = virtualinvoke v.<java.nio.channels.FileChannel: long position()>();
virtualinvoke v.<org.apache.zookeeper.server.persistence.FilePadding: void setCurrentSize(long)>(v);
label:
v = 0;
label:
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryInputArchive logStream>;
v = virtualinvoke v.<org.apache.jute.BinaryInputArchive: long readLong(java.lang.String)>("crcvalue");
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryInputArchive logStream>;
v = virtualinvoke v.<org.apache.jute.BinaryInputArchive: byte[] readBuffer(java.lang.String)>("txnEntry");
label:
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream out>;
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[])>("EOF reached after \u txns.");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
return;
label:
v = lengthof v;
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
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[])>("EOF reached after \u txns.");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
return;
label:
v = new java.util.zip.Adler;
specialinvoke v.<java.util.zip.Adler32: void <init>()>();
v = lengthof v;
interfaceinvoke v.<java.util.zip.Checksum: void update(byte[],int,int)>(v, 0, v);
v = interfaceinvoke v.<java.util.zip.Checksum: long getValue()>();
v = v cmp v;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean force>;
if v != 0 goto label;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printTxn(byte[],java.lang.String)>(v, "CRC ERROR");
v = specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean askForFix(java.util.Scanner)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.zip.Checksum: long getValue()>();
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed>;
v = v + 1;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed> = v;
goto label;
label:
v = interfaceinvoke v.<java.util.zip.Checksum: long getValue()>();
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printTxn(byte[],java.lang.String)>(v, "CRC FIXED");
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed>;
v = v + 1;
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed> = v;
goto label;
label:
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printTxn(byte[],java.lang.String)>(v, "CRC ERROR");
label:
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean verbose>;
if v == 0 goto label;
label:
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printTxn(byte[])>(v);
label:
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryInputArchive logStream>;
v = virtualinvoke v.<org.apache.jute.BinaryInputArchive: byte readByte(java.lang.String)>("EOR");
if v == 66 goto label;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[0];
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "Last transaction was partial.", v);
throw v;
label:
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.zookeeper.server.persistence.FilePadding filePadding>;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
v = virtualinvoke v.<java.io.FileOutputStream: java.nio.channels.FileChannel getChannel()>();
virtualinvoke v.<org.apache.zookeeper.server.persistence.FilePadding: long padFile(java.nio.channels.FileChannel)>(v);
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryOutputArchive recoveryOa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeLong(long,java.lang.String)>(v, "crcvalue");
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryOutputArchive recoveryOa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeBuffer(byte[],java.lang.String)>(v, "txnEntry");
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryOutputArchive recoveryOa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeByte(byte,java.lang.String)>(66, "EOR");
label:
v = v + 1;
goto label;
catch java.io.EOFException from label to label with label;
}
public void chop()
{
java.lang.Throwable v, v;
java.io.BufferedInputStream v;
java.lang.Object[] v;
long v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v;
java.io.BufferedOutputStream v;
int v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v, v, v, v, v;
boolean v;
java.io.PrintStream v;
java.io.FileOutputStream v;
java.io.FileInputStream v;
org.apache.zookeeper.server.ExitCode v;
java.io.File v, v, v, v, v, v;
java.lang.Exception v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = new java.io.File;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,long)>(v, 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[])>("\u.chopped\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
label:
v = new java.io.BufferedInputStream;
v = new java.io.FileInputStream;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
specialinvoke v.<java.io.BufferedInputStream: void <init>(java.io.InputStream)>(v);
label:
v = new java.io.BufferedOutputStream;
v = new java.io.FileOutputStream;
specialinvoke v.<java.io.FileOutputStream: void <init>(java.io.File)>(v);
specialinvoke v.<java.io.BufferedOutputStream: void <init>(java.io.OutputStream)>(v);
label:
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid>;
v = staticinvoke <org.apache.zookeeper.server.util.LogChopper: boolean chop(java.io.InputStream,java.io.OutputStream,long)>(v, v, v);
if v != 0 goto label;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode INVALID_INVOCATION>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[1];
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v[0] = v;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "Failed to chop %s", v);
throw v;
label:
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Got exception: \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public boolean isDumpMode()
{
byte v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
long v;
boolean v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: long zxid>;
v = v cmp 0L;
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean askForFix(java.util.Scanner) throws org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException
{
java.io.PrintStream v;
java.lang.Object[] v;
java.util.Scanner v;
char v, v;
org.apache.zookeeper.server.ExitCode v;
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException v;
int v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: java.util.Scanner;
label:
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>("Would you like to fix it (Yes/No/Abort) ? ");
v = virtualinvoke v.<java.util.Scanner: java.lang.String next()>();
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
v = staticinvoke <java.lang.Character: char toUpperCase(char)>(v);
lookupswitch(v)
{
case 65: goto label;
case 78: goto label;
case 89: goto label;
default: goto label;
};
label:
return 1;
label:
return 0;
label:
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode EXECUTION_FINISHED>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = newarray (java.lang.Object)[0];
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException: void <init>(int,java.lang.String,java.lang.Object[])>(v, "Recovery aborted.", v);
throw v;
}
private void printTxn(byte[]) throws java.io.IOException
{
byte[] v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: byte[];
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void printTxn(byte[],java.lang.String)>(v, "");
return;
}
private void printTxn(byte[], java.lang.String) throws java.io.IOException
{
byte[] v;
java.lang.Object[] v;
java.util.Date v;
long v, v, v;
int v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
java.text.DateFormat v;
boolean v, v;
java.io.PrintStream v, v, v;
org.apache.jute.Record v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.server.TxnLogEntry v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v := @parameter: byte[];
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: org.apache.zookeeper.server.TxnLogEntry deserializeTxn(byte[])>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnHeader getHeader()>();
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.jute.Record getTxn()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String getFormattedTxnStr(org.apache.jute.Record)>(v);
v = newarray (java.lang.Object)[6];
v = staticinvoke <java.text.DateFormat: java.text.DateFormat getDateTimeInstance(int,int)>(3, 1);
v = new java.util.Date;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getTime()>();
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = virtualinvoke v.<java.text.DateFormat: java.lang.String format(java.util.Date)>(v);
v[0] = v;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getClientId()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[1] = v;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getCxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[2] = v;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[3] = v;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(v);
v[4] = v;
v[5] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%s session 0x%s cxid 0x%s zxid 0x%s %s %s", v);
if v == null goto label;
v = "";
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("\u - ");
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("\n");
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>(v);
goto label;
label:
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
return;
}
private static java.lang.String getFormattedTxnStr(org.apache.jute.Record) throws java.io.IOException
{
byte[] v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.jute.Record v;
java.util.List v, v, v, v;
java.lang.StringBuilder v, v, v, v, v, v, v;
long v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v;
v := @parameter: org.apache.jute.Record;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
if v != null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
label:
v = v instanceof org.apache.zookeeper.txn.CreateTxn;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTxn: java.lang.String getPath()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTxn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTxn: java.util.List getAcl()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTxn: boolean getEphemeral()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List,boolean)>(v, 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[])>(",\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTxn: int getParentCVersion()>();
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[])>(",\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = v instanceof org.apache.zookeeper.txn.SetDataTxn;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: java.lang.String getPath()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: int getVersion()>();
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[])>(",\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = v instanceof org.apache.zookeeper.txn.CreateContainerTxn;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateContainerTxn: java.lang.String getPath()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateContainerTxn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateContainerTxn: java.util.List getAcl()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateContainerTxn: int getParentCVersion()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List,int)>(v, 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[])>(",\u,\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = v instanceof org.apache.zookeeper.txn.CreateTTLTxn;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTTLTxn: java.lang.String getPath()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTTLTxn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTTLTxn: java.util.List getAcl()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTTLTxn: int getParentCVersion()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List,int)>(v, 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[])>(",\u,\u0001");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.CreateTTLTxn: long getTtl()>();
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[])>(",\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = v instanceof org.apache.zookeeper.txn.MultiTxn;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.MultiTxn: java.util.List getTxns()>();
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.txn.Txn: int getType()>();
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.Txn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u0001:\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.txn.Txn: int getType()>();
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.txn.Txn: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: java.lang.String checkNullToEmpty(byte[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>(";\u0001:\u0001");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static java.lang.String checkNullToEmpty(byte[]) throws java.io.IOException
{
byte[] v;
java.nio.charset.Charset v;
int v;
java.lang.String v;
v := @parameter: byte[];
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
return "";
label:
v = new java.lang.String;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
return v;
}
private void openTxnLogFile() throws java.io.FileNotFoundException
{
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.io.FileInputStream v, v;
java.io.File v;
org.apache.jute.BinaryInputArchive v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = new java.io.FileInputStream;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File txnLogFile>;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileInputStream txnFis> = v;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileInputStream txnFis>;
v = staticinvoke <org.apache.jute.BinaryInputArchive: org.apache.jute.BinaryInputArchive getArchive(java.io.InputStream)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryInputArchive logStream> = v;
return;
}
private void closeTxnLogFile() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.io.FileInputStream v, v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileInputStream txnFis>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileInputStream txnFis>;
virtualinvoke v.<java.io.FileInputStream: void close()>();
label:
return;
}
private void openRecoveryFile() throws java.io.FileNotFoundException
{
org.apache.jute.BinaryOutputArchive v;
java.io.FileOutputStream v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.io.File v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = new java.io.FileOutputStream;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File recoveryLogFile>;
specialinvoke v.<java.io.FileOutputStream: void <init>(java.io.File)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos> = v;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
v = staticinvoke <org.apache.jute.BinaryOutputArchive: org.apache.jute.BinaryOutputArchive getArchive(java.io.OutputStream)>(v);
v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: org.apache.jute.BinaryOutputArchive recoveryOa> = v;
return;
}
private void closeRecoveryFile() throws java.io.IOException
{
java.io.FileOutputStream v, v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.FileOutputStream recoveryFos>;
virtualinvoke v.<java.io.FileOutputStream: void close()>();
label:
return;
}
private static org.apache.zookeeper.server.persistence.TxnLogToolkit parseCommandLine(java.lang.String[]) throws org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitException, java.io.FileNotFoundException
{
org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException v;
org.apache.commons.cli.DefaultParser v;
boolean v, v, v, v, v, v;
java.lang.Throwable v;
java.lang.Object[] v;
org.apache.commons.cli.Options v;
java.lang.String[] v, v, v, v;
int v, v;
org.apache.commons.cli.CommandLine v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v, v;
java.lang.String v, v, v, v;
org.apache.commons.cli.Option v, v, v, v, v, v, v;
org.apache.zookeeper.server.ExitCode v;
v := @parameter: java.lang.String[];
v = new org.apache.commons.cli.DefaultParser;
specialinvoke v.<org.apache.commons.cli.DefaultParser: void <init>()>();
v = new org.apache.commons.cli.Options;
specialinvoke v.<org.apache.commons.cli.Options: void <init>()>();
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("h", "help", 0, "Print help message");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("r", "recover", 0, "Recovery mode. Re-calculate CRC for broken entries.");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("v", "verbose", 0, "Be verbose in recovery mode: print all entries, not just fixed ones.");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("d", "dump", 0, "Dump mode. Dump all entries of the log file with printing the content of a nodepath (default)");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("y", "yes", 0, "Non-interactive mode: repair all CRC errors without asking");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("c", "chop", 0, "Chop mode. Chop txn file to a zxid.");
v = new org.apache.commons.cli.Option;
specialinvoke v.<org.apache.commons.cli.Option: void <init>(java.lang.String,java.lang.String,boolean,java.lang.String)>("z", "zxid", 1, "Used with chop. Zxid to which to chop.");
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
virtualinvoke v.<org.apache.commons.cli.Options: org.apache.commons.cli.Options addOption(org.apache.commons.cli.Option)>(v);
label:
v = interfaceinvoke v.<org.apache.commons.cli.CommandLineParser: org.apache.commons.cli.CommandLine parse(org.apache.commons.cli.Options,java.lang.String[])>(v, v);
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("help");
if v == 0 goto label;
staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: void printHelpAndExit(int,org.apache.commons.cli.Options)>(0, v);
label:
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: java.lang.String[] getArgs()>();
v = lengthof v;
if v >= 1 goto label;
staticinvoke <org.apache.zookeeper.server.persistence.TxnLogToolkit: void printHelpAndExit(int,org.apache.commons.cli.Options)>(1, v);
label:
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("chop");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("zxid");
if v == 0 goto label;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: java.lang.String[] getArgs()>();
v = v[0];
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: java.lang.String getOptionValue(java.lang.String)>("zxid");
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void <init>(java.lang.String,java.lang.String)>(v, v);
label:
return v;
label:
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("recover");
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("verbose");
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: java.lang.String[] getArgs()>();
v = v[0];
v = virtualinvoke v.<org.apache.commons.cli.CommandLine: boolean hasOption(java.lang.String)>("yes");
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void <init>(boolean,boolean,java.lang.String,boolean)>(v, v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v = virtualinvoke v.<org.apache.commons.cli.ParseException: java.lang.String getMessage()>();
v = newarray (java.lang.Object)[0];
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit$TxnLogToolkitParseException: void <init>(org.apache.commons.cli.Options,int,java.lang.String,java.lang.Object[])>(v, v, v, v);
throw v;
catch org.apache.commons.cli.ParseException from label to label with label;
catch org.apache.commons.cli.ParseException from label to label with label;
}
private static void printHelpAndExit(int, org.apache.commons.cli.Options)
{
int v;
org.apache.commons.cli.Options v;
org.apache.commons.cli.HelpFormatter v;
v := @parameter: int;
v := @parameter: org.apache.commons.cli.Options;
v = new org.apache.commons.cli.HelpFormatter;
specialinvoke v.<org.apache.commons.cli.HelpFormatter: void <init>()>();
virtualinvoke v.<org.apache.commons.cli.HelpFormatter: void printHelp(int,java.lang.String,java.lang.String,org.apache.commons.cli.Options,java.lang.String)>(120, "TxnLogToolkit [-dhrvc] <txn_log_file_name> (-z <zxid>)", "", v, "");
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
return;
}
private void printStat()
{
java.io.PrintStream v;
java.lang.Object[] v;
int v;
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
java.lang.Integer v;
java.io.File v;
boolean v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = newarray (java.lang.Object)[2];
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: java.io.File recoveryLogFile>;
v[0] = v;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: int crcFixed>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
virtualinvoke v.<java.io.PrintStream: java.io.PrintStream printf(java.lang.String,java.lang.Object[])>("Recovery file %s has been written with %d fixed CRC error(s)%n", v);
label:
return;
}
public void close() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.TxnLogToolkit v;
boolean v;
v := @this: org.apache.zookeeper.server.persistence.TxnLogToolkit;
v = v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: boolean recoveryMode>;
if v == 0 goto label;
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void closeRecoveryFile()>();
label:
specialinvoke v.<org.apache.zookeeper.server.persistence.TxnLogToolkit: void closeTxnLogFile()>();
return;
}
}