Skip to content

Commit c8e49f9

Browse files
committed
Updated the jar main to take the max log size as a param
1 parent f867b79 commit c8e49f9

11 files changed

Lines changed: 41 additions & 48 deletions
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
Manifest-Version: 1.0
22
Created-By: 1.6.0_06 (Sun Microsystems Inc.)
33
Main-Class: edu.columbia.cs.psl.chroniclerj.Main
4-
Class-Path: ./
54

Code/ChroniclerJ/jar-descriptor.jardesc

Lines changed: 0 additions & 22 deletions
This file was deleted.

Code/ChroniclerJ/makeJar.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
jar cmf META-INF/MANIFEST.MF chroniclerj.jar META-INF/ listenerMethods.txt nondeterministic-methods.txt -C bin .

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/ChroniclerJExportRunner.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static void genTestCase()
3939
exportSerializable();
4040
try {
4141

42-
File logFile = new File("chroniclerj-crash-"+System.currentTimeMillis());
42+
File logFile = new File("chroniclerj-crash-"+System.currentTimeMillis()+".test");
4343

4444
Manifest manifest = new Manifest();
4545
manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
@@ -79,6 +79,8 @@ public static void genTestCase()
7979
}
8080
is.close();
8181
zos.closeEntry();
82+
File f = new File(s);
83+
f.delete();
8284
}
8385
for(String s : otherLogs)
8486
{
@@ -94,6 +96,8 @@ public static void genTestCase()
9496
}
9597
is.close();
9698
zos.closeEntry();
99+
File f = new File(s);
100+
f.delete();
97101
}
98102
zos.flush();
99103
zos.close();
@@ -141,7 +145,6 @@ public ChroniclerJExportRunner() {
141145

142146
public static void export() {
143147
shouldExport = 0;
144-
System.out.println("Export");
145148
try {
146149
XStream xstream = new XStream(new StaticReflectionProvider());
147150
String xml = "";
@@ -178,7 +181,6 @@ public static void export() {
178181
public static void exportSerializable() {
179182
shouldExportSerializable = 0;
180183
try {
181-
System.out.println("Export_s");
182184

183185
Log.logLock.lock();
184186
{
@@ -250,7 +252,6 @@ public static void exportSerializable() {
250252
oos.flush();
251253
oos.close();
252254
ExportedLog.clearLog();
253-
System.out.println("Export_s done");
254255
} catch (Exception exi) {
255256

256257
}

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/Constants.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package edu.columbia.cs.psl.chroniclerj;
22

3-
public interface Constants {
3+
public class Constants {
44

55
public static int DEFAULT_LOG_SIZE = 2000;
66
public static int MAX_LOG_SIZE = 40000000;
7-
public static int VERY_MAX_LOG_SIZE = 400000000;
87

98
public static double LOG_GROWTH_RATE = 2.5;
109
public static String REPLAY_CLASS_SUFFIX = "InvivoReplay";

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/Main.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,41 @@
11
package edu.columbia.cs.psl.chroniclerj;
22

3+
import java.util.Arrays;
4+
35
import edu.columbia.cs.psl.chroniclerj.replay.ReplayRunner;
46
import edu.columbia.cs.psl.chroniclerj.replay.Replayer;
57

68
public class Main {
79
public static void main(String[] args) {
810
if (args.length < 1) {
9-
System.err.println("Usage: java -jar chroniclerj.jar -instrument [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
11+
System.err.println("Usage: java -jar chroniclerj.jar -instrument {-mxLogN} [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
1012
System.err.println("or");
1113
System.err.println("Usage: java -jar chroniclerj.jar -replay [testcase]");
1214
System.exit(-1);
1315
}
1416
if (args[0].equals("-instrument")) {
1517
if (args.length < 4) {
16-
System.err.println("Usage: java -jar chroniclerj.jar -instrument [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
18+
System.err.println("Usage: java -jar chroniclerj.jar -instrument {-mxLogN} [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
1719
System.exit(-1);
1820
}
19-
String[] instrumenterArgs = new String[args.length-1];
20-
instrumenterArgs[0] = args[1];
21-
instrumenterArgs[1] = args[2];
22-
instrumenterArgs[2] = args[1];
23-
for (int i = 4; i < args.length; i++) {
24-
instrumenterArgs[i] = args[i];
21+
int argOffset = 0;
22+
if(args[1].startsWith("-mxLog"))
23+
{
24+
argOffset++;
25+
Constants.MAX_LOG_SIZE=Integer.parseInt(args[1].replace("-mxLog", ""));
26+
}
27+
System.out.println("Offset " + argOffset);
28+
String[] instrumenterArgs = new String[args.length-1- argOffset];
29+
30+
instrumenterArgs[0] = args[1+argOffset];
31+
instrumenterArgs[1] = args[2+argOffset];
32+
instrumenterArgs[2] = args[1+argOffset];
33+
for (int i = 4+argOffset; i < args.length; i++) {
34+
instrumenterArgs[i-argOffset] = args[i];
2535
}
36+
System.out.println(Arrays.deepToString(instrumenterArgs));
2637
Instrumenter._main(instrumenterArgs);
27-
Replayer._main(new String[] { args[1], args[3] });
38+
Replayer._main(new String[] { args[1+argOffset], args[3+argOffset] });
2839
}
2940
else if(args[0].equals("-replay"))
3041
{
@@ -44,7 +55,7 @@ else if(args[0].equals("-replay"))
4455
}
4556
else
4657
{
47-
System.err.println("Usage: java -jar chroniclerj.jar -instrument [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
58+
System.err.println("Usage: java -jar chroniclerj.jar -instrument {-mxLogN} [source] [dest-deploy] [dest-replay] {additional-classpath-entries}");
4859
System.err.println("or");
4960
System.err.println("Usage: java -jar chroniclerj.jar -replay [testcase]");
5061
System.exit(-1);

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/replay/NonDeterministicReplayMethodVisitor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515

1616
import edu.columbia.cs.psl.chroniclerj.CallbackRegistry;
1717
import edu.columbia.cs.psl.chroniclerj.ChroniclerJExportRunner;
18-
import edu.columbia.cs.psl.chroniclerj.Constants;
1918
import edu.columbia.cs.psl.chroniclerj.ExportedLog;
2019
import edu.columbia.cs.psl.chroniclerj.Instrumenter;
2120
import edu.columbia.cs.psl.chroniclerj.Log;
2221
import edu.columbia.cs.psl.chroniclerj.MethodCall;
2322
import edu.columbia.cs.psl.chroniclerj.visitor.CloningAdviceAdapter;
2423
import edu.columbia.cs.psl.chroniclerj.visitor.NonDeterministicLoggingMethodVisitor;
2524

26-
public class NonDeterministicReplayMethodVisitor extends CloningAdviceAdapter implements Constants {
25+
public class NonDeterministicReplayMethodVisitor extends CloningAdviceAdapter {
2726
private static Logger logger = Logger.getLogger(NonDeterministicReplayMethodVisitor.class);
2827
private String name;
2928
private String desc;

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/visitor/NonDeterministicLoggingClassVisitor.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,16 @@ public class NonDeterministicLoggingClassVisitor extends ClassVisitor implements
3232
public static HashSet<String> callbackMethods = new HashSet<String>();
3333
static
3434
{
35-
File f = new File("listenerMethods.txt");
3635
Scanner s;
3736
try {
38-
s = new Scanner(f);
37+
s = new Scanner(NonDeterministicLoggingClassVisitor.class.getClassLoader().getResourceAsStream("listenerMethods.txt"));
3938
while (s.hasNextLine())
4039
{
4140
String l = s.nextLine();
4241
callbackMethods.add(l);
4342
callbackClasses.add(l.substring(0,l.indexOf(".")));
4443
}
45-
} catch (FileNotFoundException e) {
44+
} catch (Exception e) {
4645
e.printStackTrace();
4746
}
4847
}

Code/ChroniclerJ/src/edu/columbia/cs/psl/chroniclerj/visitor/NonDeterministicLoggingMethodVisitor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919
import edu.columbia.cs.psl.chroniclerj.Constants;
2020
import edu.columbia.cs.psl.chroniclerj.Instrumenter;
2121
import edu.columbia.cs.psl.chroniclerj.MethodCall;
22+
import edu.columbia.cs.psl.chroniclerj.replay.NonDeterministicReplayMethodVisitor;
2223

23-
public class NonDeterministicLoggingMethodVisitor extends CloningAdviceAdapter implements Constants {
24+
public class NonDeterministicLoggingMethodVisitor extends CloningAdviceAdapter {
2425
private static Logger logger = Logger.getLogger(NonDeterministicLoggingMethodVisitor.class);
2526
private String name;
2627
private String desc;
@@ -40,13 +41,12 @@ public static void registerNDMethod(String owner, String name, String desc)
4041
nonDeterministicMethods.add(owner + "." + name + ":" + desc);
4142
}
4243
static {
43-
File f = new File("nondeterministic-methods.txt");
4444
Scanner s;
4545
try {
46-
s = new Scanner(f);
46+
s = new Scanner(NonDeterministicReplayMethodVisitor.class.getClassLoader().getResourceAsStream("nondeterministic-methods.txt"));
4747
while (s.hasNextLine())
4848
nonDeterministicMethods.add(s.nextLine());
49-
} catch (FileNotFoundException e) {
49+
} catch (Exception e) {
5050
e.printStackTrace();
5151
}
5252
}

Code/ChroniclerJ/unpackLibs.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/sh
2+
cp lib/asm-all-4.0.jar bin/; cp lib/kxml2-2.3.0.jar bin/; cp lib/log4j-1.2.16.jar bin/; cp lib/objenesis-1.2.jar bin/; cp lib/xstream-1.4.2.jar bin/;
3+
cd bin
4+
unzip -n asm-all-4.0.jar; unzip -n kxml2-2.3.0.jar; unzip -n log4j-1.2.16.jar; unzip -n objenesis-1.2.jar; unzip -n xstream-1.4.2.jar
5+
rm asm-all-4.0.jar; rm kxml2-2.3.0.jar; rm log4j-1.2.16.jar; rm objenesis-1.2.jar; rm xstream-1.4.2.jar; rm -rf META-INF/

0 commit comments

Comments
 (0)