Skip to content

Commit a066ced

Browse files
committed
ASM->5.0.4, remove binaries
1 parent 1106bb2 commit a066ced

13 files changed

Lines changed: 60 additions & 73 deletions

Code/ChroniclerJ/pom.xml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>edu.columbia.cs.psl.chroniclerj</groupId>
55
<artifactId>ChroniclerJ</artifactId>
6-
<version>0.42-SNAPSHOT</version>
6+
<version>0.43-SNAPSHOT</version>
77
<build>
88
<plugins>
99
<plugin>
@@ -56,12 +56,6 @@
5656
<includes>
5757
<include>**/*ITCase.java</include>
5858
</includes>
59-
<properties>
60-
<property>
61-
<name>cp</name>
62-
<value>target/test-classes, target/test-classes2</value>
63-
</property>
64-
</properties>
6559
<!-- <argLine>-Xbootclasspath/p:${project.build.directory}/${project.build.finalName}.jar
6660
-javaagent:${project.build.directory}/${project.build.finalName}.jar=enum,acmpeq,cacheDir=${project.build.directory}/cached-int-untaged,withSelectiveInst=${basedir}/resources/test-methods</argLine> -->
6761
</configuration>
@@ -93,13 +87,6 @@
9387
</execution>
9488
</executions>
9589
</plugin>
96-
<!-- <plugin> <artifactId>exec-maven-plugin</artifactId> <groupId>org.codehaus.mojo</groupId>
97-
<executions> <execution> <id>instrument-jre</id> <phase>pre-integration-test</phase>
98-
<goals> <goal>exec</goal> </goals> <configuration> <executable>${basedir}/instrumentJRE.sh</executable>
99-
</configuration> </execution> <execution> <id>run-dacapo</id> <phase>integration-test</phase>
100-
<goals> <goal>exec</goal> </goals> <configuration> <skip>${dacapo.skip}</skip>
101-
<executable>${basedir}/runDacapo.sh</executable> </configuration> </execution>
102-
</executions> </plugin> -->
10390
</plugins>
10491
</build>
10592

@@ -118,7 +105,7 @@
118105
<dependency>
119106
<groupId>org.ow2.asm</groupId>
120107
<artifactId>asm-all</artifactId>
121-
<version>4.0</version>
108+
<version>5.0.4</version>
122109
</dependency>
123110
<dependency>
124111
<groupId>net.sf.kxml</groupId>

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/Instrumenter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ private static byte[] instrumentClass(InputStream is) {
118118
ClassWriter cw = new InstrumenterClassWriter(cr, ClassWriter.COMPUTE_MAXS
119119
| ClassWriter.COMPUTE_FRAMES, loader);
120120
NonDeterministicLoggingClassVisitor cv = new NonDeterministicLoggingClassVisitor(
121-
Opcodes.ASM4, cw);
121+
Opcodes.ASM5, cw);
122122
CallbackDuplicatingClassVisitor callbackDuplicator = new CallbackDuplicatingClassVisitor(
123-
Opcodes.ASM4, cv);
123+
Opcodes.ASM5, cv);
124124

125125
cr.accept(callbackDuplicator, ClassReader.EXPAND_FRAMES);
126126
if (methodCalls.containsKey(cv.getClassName()))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public MethodVisitor visitMethod(int acc, String name, String desc, String signa
6060
AnalyzerAdapter analyzer = new AnalyzerAdapter(className, acc, name, desc, fmv);
6161
LocalVariablesSorter sorter = new LocalVariablesSorter(acc, desc, analyzer);
6262
NonDeterministicReplayMethodVisitor cloningMV = new NonDeterministicReplayMethodVisitor(
63-
Opcodes.ASM4, sorter, acc, name, desc, className, isFirstConstructor, analyzer,
63+
Opcodes.ASM5, sorter, acc, name, desc, className, isFirstConstructor, analyzer,
6464
classIsCallback(className) && name.equals("<init>"));
6565
if (name.equals("<init>"))
6666
isFirstConstructor = false;

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -160,21 +160,21 @@ private void loadReplayIndex(String className, String fieldName) {
160160
super.visitLdcInsn(className);
161161
if (className.contains("Serializable"))
162162
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(ReplayUtils.class),
163-
"getNextIndex", "(Ljava/util/HashMap;[Ljava/lang/String;ILjava/lang/String;)I");
163+
"getNextIndex", "(Ljava/util/HashMap;[Ljava/lang/String;ILjava/lang/String;)I", false);
164164
else {
165165
super.visitFieldInsn(GETSTATIC, className, fieldName, "[Ljava/lang/Object;");
166166

167167
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(ReplayUtils.class),
168168
"getNextIndexO",
169-
"(Ljava/util/HashMap;[Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;)I");
169+
"(Ljava/util/HashMap;[Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;)I", false);
170170
}
171171
super.visitInsn(DUP);
172172
Label cont = new Label();
173173
super.visitJumpInsn(IFGE, cont);
174174
super.visitInsn(POP);
175175
super.visitLdcInsn(className);
176176
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(ReplayRunner.class),
177-
"loadNextLog", "(Ljava/lang/String;)V");
177+
"loadNextLog", "(Ljava/lang/String;)V", false);
178178
super.visitJumpInsn(GOTO, load);
179179
visitLabel(cont);
180180
// super.visitInsn(ICONST_0);
@@ -184,16 +184,16 @@ private void incrementReplayIndex(String className, String fieldName) {
184184
super.visitFieldInsn(GETSTATIC, className, fieldName + "_replayIndex",
185185
"Ljava/util/HashMap;");
186186
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(Thread.class), "currentThread",
187-
"()Ljava/lang/Thread;");
187+
"()Ljava/lang/Thread;", false);
188188
super.visitMethodInsn(INVOKEVIRTUAL, Type.getInternalName(Thread.class), "getName",
189-
"()Ljava/lang/String;");
189+
"()Ljava/lang/String;", false);
190190
loadReplayIndex(className, fieldName);
191191
super.visitInsn(ICONST_1);
192192
super.visitInsn(IADD);
193193
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(Integer.class), "valueOf",
194-
"(I)Ljava/lang/Integer;");
194+
"(I)Ljava/lang/Integer;", false);
195195
super.visitMethodInsn(INVOKEVIRTUAL, Type.getInternalName(HashMap.class), "put",
196-
"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
196+
"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false);
197197
super.visitInsn(POP);
198198

199199
super.visitFieldInsn(GETSTATIC, Type.getInternalName(ExportedLog.class),
@@ -209,7 +209,7 @@ private void incrementReplayIndex(String className, String fieldName) {
209209
private boolean inited;
210210

211211
@Override
212-
public void visitMethodInsn(int opcode, String owner, String name, String desc) {
212+
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itfc) {
213213
if (owner.equals(Type.getInternalName(ChroniclerJExportRunner.class))
214214
&& name.equals("genTestCase"))
215215
return;
@@ -218,7 +218,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
218218
owner = "edu/columbia/cs/psl/chroniclerj/MethodInterceptor";
219219
super.visitMethodInsn(Opcodes.INVOKESTATIC,
220220
"edu/columbia/cs/psl/chroniclerj/MethodInterceptor", "invokeReplay",
221-
"(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;");
221+
"(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;", false);
222222
return;
223223
}
224224
try {
@@ -233,7 +233,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
233233
if (!(owner.equals(Instrumenter.instrumentedClasses.get(classDesc).superName) && this.name
234234
.equals("<init>"))) {
235235
if (analyzer.stack == null) {
236-
super.visitMethodInsn(opcode, owner, name, desc);
236+
super.visitMethodInsn(opcode, owner, name, desc, itfc);
237237
} else {
238238
Type[] args = Type.getArgumentTypes(desc);
239239
for (int i = args.length - 1; i >= 0; i--) {
@@ -273,7 +273,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
273273
}
274274
}
275275
} else {
276-
super.visitMethodInsn(opcode, owner, name, desc);
276+
super.visitMethodInsn(opcode, owner, name, desc, itfc);
277277
}
278278

279279
} else if ((!constructor || isFirstConstructor || superInitialized)
@@ -303,7 +303,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
303303
super.visitFieldInsn(GETSTATIC, Type.getInternalName(Log.class), "logLock",
304304
Type.getDescriptor(Lock.class));
305305
super.visitMethodInsn(INVOKEINTERFACE, Type.getInternalName(Lock.class), "lock",
306-
"()V");
306+
"()V", true);
307307

308308
logger.debug("Adding field in MV to list " + m.getLogFieldName());
309309
methodCallsToClear.add(m);
@@ -380,7 +380,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
380380
* stack: src (fill incremented) 0 dest 0 length
381381
*/
382382
mv.visitMethodInsn(INVOKESTATIC, "java/lang/System", "arraycopy",
383-
"(Ljava/lang/Object;ILjava/lang/Object;II)V");
383+
"(Ljava/lang/Object;ILjava/lang/Object;II)V", false);
384384
/*
385385
* stack: dest popped
386386
*/
@@ -438,10 +438,10 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc)
438438
super.visitFieldInsn(GETSTATIC, Type.getInternalName(Log.class), "logLock",
439439
Type.getDescriptor(Lock.class));
440440
super.visitMethodInsn(INVOKEINTERFACE, Type.getInternalName(Lock.class), "unlock",
441-
"()V");
441+
"()V", true);
442442

443443
} else {
444-
super.visitMethodInsn(opcode, owner, name, desc);
444+
super.visitMethodInsn(opcode, owner, name, desc, itfc);
445445
}
446446
} catch (Exception ex) {
447447
logger.error("Unable to instrument method call", ex);
@@ -453,7 +453,7 @@ protected void onMethodEnter() {
453453
if (this.name.equals("<init>") && isCallbackInit) {
454454
super.visitVarInsn(ALOAD, 0);
455455
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(CallbackRegistry.class),
456-
"register", "(Ljava/lang/Object;)V");
456+
"register", "(Ljava/lang/Object;)V", false);
457457
inited = true;
458458
}
459459
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private static byte[] instrumentClass(InputStream is) {
7575
ClassWriter cw = new InstrumenterClassWriter(cr, ClassWriter.COMPUTE_MAXS
7676
| ClassWriter.COMPUTE_FRAMES, Instrumenter.loader);
7777
NonDeterministicReplayClassVisitor cv = new NonDeterministicReplayClassVisitor(
78-
Opcodes.ASM4, cw);
78+
Opcodes.ASM5, cw);
7979
cr.accept(cv, ClassReader.EXPAND_FRAMES);
8080
Instrumenter.methodCalls.put(cv.getClassName(), cv.getLoggedMethodCalls());
8181
lastInstrumentedClass = cv.getClassName();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void visitEnd() {
5353
// mn.name = "BBB"+mn.name;
5454
MethodVisitor mv = super.visitMethod(mn.access, mn.name, mn.desc, mn.signature,
5555
(String[]) mn.exceptions.toArray(new String[0]));
56-
CloningAdviceAdapter caa = new CloningAdviceAdapter(Opcodes.ASM4, mv, mn.access,
56+
CloningAdviceAdapter caa = new CloningAdviceAdapter(Opcodes.ASM5, mv, mn.access,
5757
mn.name, mn.desc, className);
5858
LocalVariablesSorter lvsorter = new LocalVariablesSorter(mn.access, mn.desc, mv);
5959
CallbackLoggingMethodVisitor clmv = new CallbackLoggingMethodVisitor(api, mv,
@@ -70,7 +70,7 @@ public void visitEnd() {
7070
clmv.loadArg(i);
7171
}
7272
clmv.visitMethodInsn((mn.access & Opcodes.ACC_STATIC) == 0 ? Opcodes.INVOKESPECIAL
73-
: Opcodes.INVOKESTATIC, className, "_chronicler_" + mn.name, mn.desc);
73+
: Opcodes.INVOKESTATIC, className, "_chronicler_" + mn.name, mn.desc, false);
7474
clmv.returnValue();
7575
clmv.visitMaxs(0, 0);
7676

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ protected void onMethodEnter() {
4343
if (this.isInit) {
4444
super.visitVarInsn(ALOAD, 0);
4545
super.visitMethodInsn(INVOKESTATIC, Type.getInternalName(CallbackRegistry.class),
46-
"register", "(Ljava/lang/Object;)V");
46+
"register", "(Ljava/lang/Object;)V", false);
4747
}
4848
}
4949

@@ -60,7 +60,7 @@ public void visitCode() {
6060
super.loadThis();
6161
super.visitMethodInsn(INVOKESPECIAL, Type.getInternalName(CallbackInvocation.class),
6262
"<init>",
63-
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Object;)V");
63+
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Object;)V", false);
6464
caa.logValueAtTopOfStackToArrayNoDup(Type.getInternalName(Log.class), "aLog",
6565
"[Ljava/lang/Object;", Type.getType(Object.class), true, "callback\t"
6666
+ className + "." + methodName + methodDesc + "\t", false, true);

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ public void println(String toPrint) {
9191
visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
9292
visitLdcInsn(toPrint + " : ");
9393
super.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "print",
94-
"(Ljava/lang/String;)V");
94+
"(Ljava/lang/String;)V", false);
9595

9696
visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
9797
super.visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "currentThread",
98-
"()Ljava/lang/Thread;");
99-
super.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Thread", "getName", "()Ljava/lang/String;");
98+
"()Ljava/lang/Thread;", false);
99+
super.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Thread", "getName", "()Ljava/lang/String;", false);
100100
super.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println",
101-
"(Ljava/lang/String;)V");
101+
"(Ljava/lang/String;)V", false);
102102
}
103103

104104
private void _generateClone(String typeOfField, String copyMethodToCall, String debug,
@@ -140,7 +140,7 @@ private void _generateClone(String typeOfField, String copyMethodToCall, String
140140
dupX2();
141141
swap();
142142
super.visitMethodInsn(Opcodes.INVOKESTATIC, "java/lang/System", "arraycopy",
143-
"(Ljava/lang/Object;ILjava/lang/Object;II)V");
143+
"(Ljava/lang/Object;ILjava/lang/Object;II)V", false);
144144
Label noNeedToPop = new Label();
145145
if (secondElHasArrayLen) {
146146
visitJumpInsn(GOTO, noNeedToPop);
@@ -223,7 +223,7 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
223223
if (doLocking) {
224224
super.visitFieldInsn(GETSTATIC, Type.getInternalName(Log.class), "logLock",
225225
Type.getDescriptor(Lock.class));
226-
super.visitMethodInsn(INVOKEINTERFACE, Type.getInternalName(Lock.class), "lock", "()V");
226+
super.visitMethodInsn(INVOKEINTERFACE, Type.getInternalName(Lock.class), "lock", "()V", true);
227227
}
228228
// Grow the array if necessary
229229

@@ -259,7 +259,7 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
259259
visitFieldInsn(getOpcode, logFieldOwner, logFieldName, logFieldTypeDesc);
260260
arrayLength();
261261
visitMethodInsn(Opcodes.INVOKESTATIC, "java/lang/System", "arraycopy",
262-
"(Ljava/lang/Object;ILjava/lang/Object;II)V");
262+
"(Ljava/lang/Object;ILjava/lang/Object;II)V", false);
263263

264264
// array = newarray
265265

@@ -284,7 +284,7 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
284284
visitFieldInsn(getOpcode, logFieldOwner, logFieldName + "_owners", "[Ljava/lang/String;");
285285
arrayLength();
286286
visitMethodInsn(Opcodes.INVOKESTATIC, "java/lang/System", "arraycopy",
287-
"(Ljava/lang/Object;ILjava/lang/Object;II)V");
287+
"(Ljava/lang/Object;ILjava/lang/Object;II)V", false);
288288

289289
// array = newarray
290290

@@ -310,7 +310,7 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
310310
visitFieldInsn(getOpcode, logFieldOwner, logFieldName + "_debug", "[Ljava/lang/String;");
311311
arrayLength();
312312
visitMethodInsn(Opcodes.INVOKESTATIC, "java/lang/System", "arraycopy",
313-
"(Ljava/lang/Object;ILjava/lang/Object;II)V");
313+
"(Ljava/lang/Object;ILjava/lang/Object;II)V", false);
314314

315315
// array = newarray
316316

@@ -382,12 +382,12 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
382382
visitLdcInsn("callback-handler");
383383
else {
384384
visitMethodInsn(INVOKESTATIC, "java/lang/Thread", "currentThread",
385-
"()Ljava/lang/Thread;");
386-
visitMethodInsn(INVOKEVIRTUAL, "java/lang/Thread", "getName", "()Ljava/lang/String;");
385+
"()Ljava/lang/Thread;", false);
386+
visitMethodInsn(INVOKEVIRTUAL, "java/lang/Thread", "getName", "()Ljava/lang/String;", false);
387387

388388
visitInsn(DUP);
389389
visitLdcInsn("Finalizer");
390-
visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z");
390+
visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false);
391391
Label contin = new Label();
392392
visitJumpInsn(IFEQ, contin);
393393
// we are in finalize thread
@@ -396,13 +396,13 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
396396
visitInsn(DUP);
397397
visitLdcInsn("Finalizer");
398398
visitMethodInsn(INVOKESPECIAL, "java/lang/StringBuilder", "<init>",
399-
"(Ljava/lang/String;)V");
399+
"(Ljava/lang/String;)V", false);
400400
visitFieldInsn(Opcodes.GETSTATIC, "edu/columbia/cs/psl/chroniclerj/replay/ReplayUtils",
401401
"curFinalizer", "J");
402402
visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "append",
403-
"(J)Ljava/lang/StringBuilder;");
403+
"(J)Ljava/lang/StringBuilder;", false);
404404
visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuilder", "toString",
405-
"()Ljava/lang/String;");
405+
"()Ljava/lang/String;", false);
406406
visitLabel(contin);
407407

408408
}
@@ -453,10 +453,10 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
453453
if (logFieldOwner.equals(Type.getInternalName(SerializableLog.class)))
454454
super.visitMethodInsn(INVOKESTATIC,
455455
Type.getInternalName(ChroniclerJExportRunner.class), "_exportSerializable",
456-
"()V");
456+
"()V", false);
457457
else
458458
super.visitMethodInsn(INVOKESTATIC,
459-
Type.getInternalName(ChroniclerJExportRunner.class), "_export", "()V");
459+
Type.getInternalName(ChroniclerJExportRunner.class), "_export", "()V", false);
460460
// super.visitVarInsn(ALOAD, monitorIndx);
461461
// super.monitorEnter();
462462
// super.visitFieldInsn(getOpcode, logFieldOwner, "logsize",
@@ -487,7 +487,7 @@ protected void logValueAtTopOfStackToArrayNoDup(String logFieldOwner, String log
487487
super.visitFieldInsn(GETSTATIC, Type.getInternalName(Log.class), "logLock",
488488
Type.getDescriptor(Lock.class));
489489
super.visitMethodInsn(INVOKEINTERFACE, Type.getInternalName(Lock.class), "unlock",
490-
"()V");
490+
"()V", true);
491491
}
492492
// super.visitLocalVariable(logFieldName + "_monitor",
493493
// "Ljava/lang/Object;", null, monitorStart, monitorEndLabel,

0 commit comments

Comments
 (0)