Newer
Older
MagnetRON / src / org / ntlab / deltaViewer / DeltaViewerSample.java
Aki Hongo on 17 Apr 2020 27 KB Apply sampleStatic.trace #2 and ObjectVertex move to follow
package org.ntlab.deltaViewer;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

import org.ntlab.deltaExtractor.Alias;
import org.ntlab.deltaExtractor.DeltaExtractorJSON;
import org.ntlab.deltaExtractor.ExtractedStructure;
import org.ntlab.trace.FieldAccess;
import org.ntlab.trace.MethodExecution;
import org.ntlab.trace.Reference;
import org.ntlab.trace.Statement;
import org.ntlab.trace.ThreadInstance;
import org.ntlab.trace.TraceJSON;
import org.ntlab.trace.TracePoint;

/**
 * Delta viewer sample for MagnetRON.
 * 
 * @author Nitta Lab.
 */
public class DeltaViewerSample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		TraceJSON trace = new TraceJSON("traces/_worstCase.txt");
//		TraceJSON trace = new TraceJSON("traces/jEditBenchmark.trace");
//		TraceJSON trace = new TraceJSON("traces/jHotDrawBenchmark.trace");
//		TraceJSON trace = new TraceJSON("traces/ArgoUMLBenchmark.trace");
//		Trace trace = new Trace("traces\\worstCase.txt");
//		Trace trace = new TraceJSON("traces\\_worstCase.txt");
		
		// Change!
//		TraceJSON trace = new TraceJSON("traces/testTrace2.txt");
//		TraceJSON trace = new TraceJSON("traces/_worstCase.txt");
//		DeltaExtractorJSON dex = new DeltaExtractorJSON(trace);

		// one delta extract
//		TraceJSON trace = new TraceJSON("traces/traceSample1.txt");
//		TraceJSON trace = new TraceJSON("traces/traceSample2.txt");
//		TraceJSON trace = new TraceJSON("traces/presenSample.txt");
//		TraceJSON trace = new TraceJSON("traces/_worstCase.txt");
//		TraceJSON trace = new TraceJSON("traces/sample1.trace");
//		TraceJSON trace = new TraceJSON("traces/sampleArray.trace");
		TraceJSON trace = new TraceJSON("traces/sampleCollection.trace");
//		TraceJSON trace = new TraceJSON("traces/sampleCreate.trace");
//		TraceJSON trace = new TraceJSON("traces/sampleStatic.trace");

		// Error display MagnetRON.
//		TraceJSON trace = new TraceJSON("traces/testTrace3.txt");
//		TraceJSON trace = new TraceJSON("traces/testTrace5.txt");
		DeltaExtractorJSON s = new DeltaExtractorJSON(trace);
		HashMap<String, ThreadInstance> threads = trace.getAllThreads();
		ThreadInstance thread = threads.values().iterator().next(); // 最後のスレッドを見ているだけ…
		TracePoint tp = thread.getRoot().get(thread.getRoot().size() - 1).getExitPoint();
		DeltaAliasCollector dac = new DeltaAliasCollector();
		// 参照元のオブジェクトId
//		ExtractedStructure e = s.extract(new Reference(null, null, "E", "C"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "D", "C"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "worstCase.P", "worstCase.M"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "sample1.D", "sample1.C"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "sampleArray.D", "sampleArray.C"), tp, dac);
		ExtractedStructure e = s.extract(new Reference(null, null, "sampleCollection.D", "sampleCollection.C"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "sampleCreate.D", "sampleCreate.C"), tp, dac);
//		ExtractedStructure e = s.extract(new Reference(null, null, "sampleStatic.D", "sampleStatic.C"), tp, dac);
		
//		HashSet<String> marked = trace.getMarkedMethodSignatures(1255991806833871L, 1255991808597322L);
//		HashSet<String> marked = trace.getMarkedMethodSignatures(1699553004208835L, 1699553004739523L);
//		System.out.println("===== Marked Methods =====");
//		for (String method: marked) {
//			System.out.println(method);
//		}
//		HashSet<String> unmarked = trace.getUnmarkedMethodSignatures(1255991806833871L, 1255991808597322L);
//		HashSet<String> unmarked = trace.getUnmarkedMethodSignatures(1699553004208835L, 1699553004739523L);
//		System.out.println("===== Unmarked Methods =====");
//		for (String method: unmarked) {
//			System.out.println(method);
//		}

		// Change!
		// setArray, setCollection(2回目以降は必要なし) , foreach(thread)
//		ArrayListにaddされてない
//		フィールドに代入されていない
//		HashMap<String, ThreadInstance> threads = trace.getAllThreads();
		for(ThreadInstance ti: threads.values()) {
			ArrayList<MethodExecution> roots = ti.getRoot();
			for(MethodExecution root: roots) {
				traverseMethodExecution(root);
			}
		}
		
		DeltaViewer dv = new DeltaViewer(e, dac);
	    List<Alias> aliasList = new ArrayList<>(dac.getAliasList());
//	    dv.setCoordinatorPoint(1200, 100);
	    dv.init();
//	    dv.update();
		for(int i = 0; i < aliasList.size(); i++) {
			System.out.println(aliasList.get(i).getObjectId() + ", " + aliasList.get(i).getMethodSignature() + " l." + aliasList.get(i).getLineNo() + " : " + aliasList.get(i).getAliasType().toString());
		}
		for(int i = 0; i <= aliasList.size(); i++) {
			dv.stepToAnimation(i);
//		    dv.update();
		}
		
/*
 * 正しい結果
 * 
===== Marked Methods =====
void worstCase.O.passL(worstCase.L)
worstCase.L worstCase.I.getL()
worstCase.L worstCase.K.getL()
worstCase.M worstCase.L.getM()
worstCase.K worstCase.J.getK()
void worstCase.N.passI(worstCase.I)
void worstCase.P.setM(worstCase.M)
===== Unmarked Methods =====
worstCase.F worstCase.C.getF()
worstCase.E worstCase.D.getE()
worstCase.A()
public worstCase.M()
worstCase.F()
void worstCase.A.m()
public static void worstCase.main.main(java.lang.String[])
worstCase.G()
worstCase.H()
worstCase.I()
worstCase.B()
worstCase.C()
worstCase.D()
worstCase.E()
worstCase.N()
worstCase.O()
worstCase.P()
worstCase.F worstCase.E.getF()
worstCase.J()
worstCase.K()
worstCase.L()
worstCase.I worstCase.F.getI()
worstCase.H worstCase.G.getH()
worstCase.I worstCase.H.getI()
worstCase.I worstCase.B.getI()
 */
//		HashSet<String> all = trace.getAllMethodSignatures();
//		System.out.println("===== All Methods =====");
//		for (String method: all) {
//			System.out.println(method);
//		}
/*
 * 正しい結果
 * 
===== All Methods =====
worstCase.F worstCase.C.getF()
worstCase.E worstCase.D.getE()
worstCase.A()
void worstCase.P.setM(worstCase.M)
public worstCase.M()
worstCase.M worstCase.L.getM()
worstCase.L worstCase.I.getL()
worstCase.L worstCase.K.getL()
void worstCase.N.passI(worstCase.I)
void worstCase.A.m()
worstCase.F()
public static void worstCase.main.main(java.lang.String[])
worstCase.G()
void worstCase.O.passL(worstCase.L)
worstCase.H()
worstCase.I()
worstCase.B()
worstCase.C()
worstCase.D()
worstCase.E()
worstCase.N()
worstCase.O()
worstCase.K worstCase.J.getK()
worstCase.F worstCase.E.getF()
worstCase.P()
worstCase.J()
worstCase.K()
worstCase.I worstCase.F.getI()
worstCase.I worstCase.H.getI()
worstCase.H worstCase.G.getH()
worstCase.L()
worstCase.I worstCase.B.getI()
 */
		
//		ArrayList<MethodExecution> specified = trace.getMethodExecutions("void");
//		System.out.println("===== Specified Methods =====");
//		for (MethodExecution method: specified) {
//			System.out.println(method.getSignature());
//		}		
/*
 * 正しい結果
 * 
===== Specified Methods =====
void worstCase.A.m()
void worstCase.N.passI(worstCase.I)
void worstCase.O.passL(worstCase.L)
void worstCase.P.setM(worstCase.M) * 
 */	
//		HashMap<String, ArrayList<MethodExecution>> allExecutions = trace.getAllMethodExecutions();
//		System.out.println("===== All Methods and Executions =====");
//		for (String method: allExecutions.keySet()) {
//			System.out.println(method + ":" + allExecutions.get(method).size());
//		}
/*
 * 正しい結果
 * 
===== All Methods and Executions =====
worstCase.F worstCase.C.getF():1
worstCase.E worstCase.D.getE():1
worstCase.A():1
void worstCase.P.setM(worstCase.M):1
public worstCase.M():1
worstCase.M worstCase.L.getM():1
worstCase.L worstCase.I.getL():1
worstCase.L worstCase.K.getL():1
void worstCase.N.passI(worstCase.I):1
void worstCase.A.m():1
worstCase.F():1
public static void worstCase.main.main(java.lang.String[]):1
worstCase.G():1
void worstCase.O.passL(worstCase.L):1
worstCase.H():1
worstCase.I():1
worstCase.B():1
worstCase.C():1
worstCase.D():1
worstCase.E():1
worstCase.N():1
worstCase.O():1
worstCase.K worstCase.J.getK():1
worstCase.F worstCase.E.getF():1
worstCase.P():1
worstCase.J():1
worstCase.K():1
worstCase.I worstCase.F.getI():1
worstCase.I worstCase.H.getI():1
worstCase.H worstCase.G.getH():1
worstCase.L():1
worstCase.I worstCase.B.getI():1
 */	
//		System.out.println("===== All Statements Forward =====");
//		trace.traverseStatementsInTrace(new IStatementVisitor() {
//			@Override
//			public boolean preVisitStatement(Statement statement) {
//				if (statement instanceof FieldUpdate) {
//					if(trace.isNull((((FieldUpdate) statement).getValueObjId()))) {
//						
//					}
//				}
//				System.out.println("pre:" + statement.getClass().getName() + ":" + statement.getTimeStamp());
//				return false;
//			}
//			@Override
//			public boolean postVisitStatement(Statement statement) {
//				System.out.println("post:" + statement.getClass().getName() + ":" + statement.getTimeStamp());
//				return false;
//			}
//		});
/*
 * 正しい結果
 * 
===== All Statements Forward =====
pre:org.ntlab.trace.BlockEnter:1699552992988213
post:org.ntlab.trace.BlockEnter:1699552992988213
pre:org.ntlab.trace.MethodInvocation:1699552993730471
pre:org.ntlab.trace.MethodInvocation:1699552994339441
pre:org.ntlab.trace.MethodInvocation:1699552994979793
pre:org.ntlab.trace.MethodInvocation:1699552995575363
pre:org.ntlab.trace.MethodInvocation:1699552996163881
pre:org.ntlab.trace.MethodInvocation:1699552996774613
pre:org.ntlab.trace.MethodInvocation:1699552997363836
pre:org.ntlab.trace.MethodInvocation:1699552997949532
pre:org.ntlab.trace.MethodInvocation:1699552998548628
pre:org.ntlab.trace.MethodInvocation:1699552999050402
pre:org.ntlab.trace.MethodInvocation:1699552999466490
pre:org.ntlab.trace.MethodInvocation:1699552999875526
pre:org.ntlab.trace.MethodInvocation:1699553000173135
post:org.ntlab.trace.MethodInvocation:1699553000173135
pre:org.ntlab.trace.FieldUpdate:1699553000225322
post:org.ntlab.trace.FieldUpdate:1699553000225322
post:org.ntlab.trace.MethodInvocation:1699552999875526
pre:org.ntlab.trace.FieldUpdate:1699553000259878
post:org.ntlab.trace.FieldUpdate:1699553000259878
post:org.ntlab.trace.MethodInvocation:1699552999466490
pre:org.ntlab.trace.FieldUpdate:1699553000290908
post:org.ntlab.trace.FieldUpdate:1699553000290908
post:org.ntlab.trace.MethodInvocation:1699552999050402
pre:org.ntlab.trace.FieldUpdate:1699553000331107
post:org.ntlab.trace.FieldUpdate:1699553000331107
post:org.ntlab.trace.MethodInvocation:1699552998548628
pre:org.ntlab.trace.FieldUpdate:1699553000376947
post:org.ntlab.trace.FieldUpdate:1699553000376947
post:org.ntlab.trace.MethodInvocation:1699552997949532
pre:org.ntlab.trace.FieldUpdate:1699553000422435
post:org.ntlab.trace.FieldUpdate:1699553000422435
post:org.ntlab.trace.MethodInvocation:1699552997363836
pre:org.ntlab.trace.FieldUpdate:1699553000463691
post:org.ntlab.trace.FieldUpdate:1699553000463691
post:org.ntlab.trace.MethodInvocation:1699552996774613
pre:org.ntlab.trace.FieldUpdate:1699553000508121
post:org.ntlab.trace.FieldUpdate:1699553000508121
post:org.ntlab.trace.MethodInvocation:1699552996163881
pre:org.ntlab.trace.FieldUpdate:1699553000551845
post:org.ntlab.trace.FieldUpdate:1699553000551845
post:org.ntlab.trace.MethodInvocation:1699552995575363
pre:org.ntlab.trace.FieldUpdate:1699553000596627
post:org.ntlab.trace.FieldUpdate:1699553000596627
post:org.ntlab.trace.MethodInvocation:1699552994979793
pre:org.ntlab.trace.FieldUpdate:1699553000640352
post:org.ntlab.trace.FieldUpdate:1699553000640352
post:org.ntlab.trace.MethodInvocation:1699552994339441
pre:org.ntlab.trace.FieldUpdate:1699553000682666
post:org.ntlab.trace.FieldUpdate:1699553000682666
pre:org.ntlab.trace.MethodInvocation:1699553001472175
pre:org.ntlab.trace.MethodInvocation:1699553002201034
pre:org.ntlab.trace.MethodInvocation:1699553003026510
post:org.ntlab.trace.MethodInvocation:1699553003026510
pre:org.ntlab.trace.FieldUpdate:1699553003101618
post:org.ntlab.trace.FieldUpdate:1699553003101618
post:org.ntlab.trace.MethodInvocation:1699553002201034
pre:org.ntlab.trace.FieldUpdate:1699553003149926
post:org.ntlab.trace.FieldUpdate:1699553003149926
post:org.ntlab.trace.MethodInvocation:1699553001472175
pre:org.ntlab.trace.FieldUpdate:1699553003190477
post:org.ntlab.trace.FieldUpdate:1699553003190477
post:org.ntlab.trace.MethodInvocation:1699552993730471
pre:org.ntlab.trace.MethodInvocation:1699553003253243
pre:org.ntlab.trace.BlockEnter:1699553003273695
post:org.ntlab.trace.BlockEnter:1699553003273695
pre:org.ntlab.trace.FieldAccess:1699553003299083
post:org.ntlab.trace.FieldAccess:1699553003299083
pre:org.ntlab.trace.FieldAccess:1699553003355502
post:org.ntlab.trace.FieldAccess:1699553003355502
pre:org.ntlab.trace.MethodInvocation:1699553003386885
pre:org.ntlab.trace.BlockEnter:1699553003400637
post:org.ntlab.trace.BlockEnter:1699553003400637
pre:org.ntlab.trace.FieldAccess:1699553003436956
post:org.ntlab.trace.FieldAccess:1699553003436956
pre:org.ntlab.trace.MethodInvocation:1699553003482444
pre:org.ntlab.trace.BlockEnter:1699553003500427
post:org.ntlab.trace.BlockEnter:1699553003500427
pre:org.ntlab.trace.FieldAccess:1699553003526169
post:org.ntlab.trace.FieldAccess:1699553003526169
pre:org.ntlab.trace.MethodInvocation:1699553003556141
pre:org.ntlab.trace.BlockEnter:1699553003570951
post:org.ntlab.trace.BlockEnter:1699553003570951
pre:org.ntlab.trace.FieldAccess:1699553003599513
post:org.ntlab.trace.FieldAccess:1699553003599513
post:org.ntlab.trace.MethodInvocation:1699553003556141
pre:org.ntlab.trace.MethodInvocation:1699553003668273
pre:org.ntlab.trace.BlockEnter:1699553003688020
post:org.ntlab.trace.BlockEnter:1699553003688020
pre:org.ntlab.trace.FieldAccess:1699553003715876
post:org.ntlab.trace.FieldAccess:1699553003715876
post:org.ntlab.trace.MethodInvocation:1699553003668273
post:org.ntlab.trace.MethodInvocation:1699553003482444
pre:org.ntlab.trace.MethodInvocation:1699553003805088
pre:org.ntlab.trace.BlockEnter:1699553003818135
post:org.ntlab.trace.BlockEnter:1699553003818135
pre:org.ntlab.trace.FieldAccess:1699553003846345
post:org.ntlab.trace.FieldAccess:1699553003846345
pre:org.ntlab.trace.MethodInvocation:1699553003896769
pre:org.ntlab.trace.BlockEnter:1699553003912989
post:org.ntlab.trace.BlockEnter:1699553003912989
pre:org.ntlab.trace.FieldAccess:1699553003944020
post:org.ntlab.trace.FieldAccess:1699553003944020
post:org.ntlab.trace.MethodInvocation:1699553003896769
pre:org.ntlab.trace.MethodInvocation:1699553004012075
pre:org.ntlab.trace.BlockEnter:1699553004029706
post:org.ntlab.trace.BlockEnter:1699553004029706
pre:org.ntlab.trace.FieldAccess:1699553004082951
post:org.ntlab.trace.FieldAccess:1699553004082951
post:org.ntlab.trace.MethodInvocation:1699553004012075
post:org.ntlab.trace.MethodInvocation:1699553003805088
post:org.ntlab.trace.MethodInvocation:1699553003386885
pre:org.ntlab.trace.MethodInvocation:1699553004208835
pre:org.ntlab.trace.BlockEnter:1699553004228229
post:org.ntlab.trace.BlockEnter:1699553004228229
pre:org.ntlab.trace.FieldAccess:1699553004257849
post:org.ntlab.trace.FieldAccess:1699553004257849
pre:org.ntlab.trace.MethodInvocation:1699553004302631
pre:org.ntlab.trace.BlockEnter:1699553004326962
post:org.ntlab.trace.BlockEnter:1699553004326962
pre:org.ntlab.trace.FieldAccess:1699553004373507
post:org.ntlab.trace.FieldAccess:1699553004373507
pre:org.ntlab.trace.MethodInvocation:1699553004418995
pre:org.ntlab.trace.BlockEnter:1699553004434510
post:org.ntlab.trace.BlockEnter:1699553004434510
pre:org.ntlab.trace.FieldAccess:1699553004461661
post:org.ntlab.trace.FieldAccess:1699553004461661
post:org.ntlab.trace.MethodInvocation:1699553004418995
pre:org.ntlab.trace.MethodInvocation:1699553004515964
pre:org.ntlab.trace.BlockEnter:1699553004526543
post:org.ntlab.trace.BlockEnter:1699553004526543
pre:org.ntlab.trace.FieldAccess:1699553004546994
post:org.ntlab.trace.FieldAccess:1699553004546994
post:org.ntlab.trace.MethodInvocation:1699553004515964
post:org.ntlab.trace.MethodInvocation:1699553004302631
pre:org.ntlab.trace.MethodInvocation:1699553004606587
pre:org.ntlab.trace.BlockEnter:1699553004615402
post:org.ntlab.trace.BlockEnter:1699553004615402
pre:org.ntlab.trace.FieldAccess:1699553004629507
post:org.ntlab.trace.FieldAccess:1699553004629507
pre:org.ntlab.trace.MethodInvocation:1699553004648195
pre:org.ntlab.trace.BlockEnter:1699553004655953
post:org.ntlab.trace.BlockEnter:1699553004655953
pre:org.ntlab.trace.FieldAccess:1699553004670763
post:org.ntlab.trace.FieldAccess:1699553004670763
post:org.ntlab.trace.MethodInvocation:1699553004648195
pre:org.ntlab.trace.MethodInvocation:1699553004703556
pre:org.ntlab.trace.BlockEnter:1699553004712019
post:org.ntlab.trace.BlockEnter:1699553004712019
pre:org.ntlab.trace.FieldUpdate:1699553004728240
post:org.ntlab.trace.FieldUpdate:1699553004728240
post:org.ntlab.trace.MethodInvocation:1699553004703556
post:org.ntlab.trace.MethodInvocation:1699553004606587
post:org.ntlab.trace.MethodInvocation:1699553004208835
post:org.ntlab.trace.MethodInvocation:1699553003253243
 */	
		
		// Change!
//		System.out.println("===== All Statements Backward =====");
//		TracePoint tp = null;
//		DeltaAliasCollector dac = new DeltaAliasCollector();
//		long restart = 0L;
//		for(;;) {
//			tp = trace.traverseStatementsInTraceBackward(new IStatementVisitor() {
//				@Override
//				public boolean preVisitStatement(Statement statement) {
//					System.out.println("pre:" + statement.getThreadNo() + ":" + statement.getTimeStamp());
//					if(statement instanceof FieldUpdate) {
//						FieldUpdate fu = (FieldUpdate) statement;
//						if(!Trace.isNull(fu.getValueObjId()) && !Trace.isPrimitive(fu.getValueClassName())) {
//							return true;
//						}
//					}
//					return false;
//				}
//				
//				@Override
//				public boolean postVisitStatement(Statement statement) {
//					System.out.println("post:" + statement.getThreadNo() + ":" + statement.getTimeStamp());
//					return false;
//				}
//			}, restart);
//			if(tp == null || !tp.isValid()) break;
//			dex.extract(tp, dac);
//			Statement statement = tp.getStatement();
//			if(statement instanceof MethodInvocation) {
//				restart = ((MethodInvocation)tp.getStatement()).getCalledMethodExecution().getExitTime();
//			} else {
//				restart = tp.getStatement().getTimeStamp();
//			}
//		}

//		trace.traverseStatementsInTraceBackward(new IStatementVisitor() {
//			@Override
//			public boolean preVisitStatement(Statement statement) {
//				System.out.println("post:" + statement.getClass().getName() + ":" + statement.getTimeStamp());
//				return false;
//			}
//			@Override
//			public boolean postVisitStatement(Statement statement) {
//				System.out.println("pre:" + statement.getClass().getName() + ":" + statement.getTimeStamp());
//				return false;
//			}
//		});
	}
	
	private static void traverseMethodExecution(MethodExecution m) {
		System.out.println(m.getSignature());
		for(Statement ms :m.getStatements()) {
			if(ms instanceof FieldAccess) {
				System.out.println(((FieldAccess)ms).getFieldName());
			}
		}
		for(MethodExecution m2: m.getChildren()) {
			traverseMethodExecution(m2);
		}
	}
/*
 * 正しい結果
 * 
===== All Statements Backward =====
post:org.ntlab.trace.MethodInvocation:1699553003253243
post:org.ntlab.trace.MethodInvocation:1699553004208835
post:org.ntlab.trace.MethodInvocation:1699553004606587
post:org.ntlab.trace.MethodInvocation:1699553004703556
post:org.ntlab.trace.FieldUpdate:1699553004728240
pre:org.ntlab.trace.FieldUpdate:1699553004728240
post:org.ntlab.trace.BlockEnter:1699553004712019
pre:org.ntlab.trace.BlockEnter:1699553004712019
pre:org.ntlab.trace.MethodInvocation:1699553004703556
post:org.ntlab.trace.MethodInvocation:1699553004648195
post:org.ntlab.trace.FieldAccess:1699553004670763
pre:org.ntlab.trace.FieldAccess:1699553004670763
post:org.ntlab.trace.BlockEnter:1699553004655953
pre:org.ntlab.trace.BlockEnter:1699553004655953
pre:org.ntlab.trace.MethodInvocation:1699553004648195
post:org.ntlab.trace.FieldAccess:1699553004629507
pre:org.ntlab.trace.FieldAccess:1699553004629507
post:org.ntlab.trace.BlockEnter:1699553004615402
pre:org.ntlab.trace.BlockEnter:1699553004615402
pre:org.ntlab.trace.MethodInvocation:1699553004606587
post:org.ntlab.trace.MethodInvocation:1699553004302631
post:org.ntlab.trace.MethodInvocation:1699553004515964
post:org.ntlab.trace.FieldAccess:1699553004546994
pre:org.ntlab.trace.FieldAccess:1699553004546994
post:org.ntlab.trace.BlockEnter:1699553004526543
pre:org.ntlab.trace.BlockEnter:1699553004526543
pre:org.ntlab.trace.MethodInvocation:1699553004515964
post:org.ntlab.trace.MethodInvocation:1699553004418995
post:org.ntlab.trace.FieldAccess:1699553004461661
pre:org.ntlab.trace.FieldAccess:1699553004461661
post:org.ntlab.trace.BlockEnter:1699553004434510
pre:org.ntlab.trace.BlockEnter:1699553004434510
pre:org.ntlab.trace.MethodInvocation:1699553004418995
post:org.ntlab.trace.FieldAccess:1699553004373507
pre:org.ntlab.trace.FieldAccess:1699553004373507
post:org.ntlab.trace.BlockEnter:1699553004326962
pre:org.ntlab.trace.BlockEnter:1699553004326962
pre:org.ntlab.trace.MethodInvocation:1699553004302631
post:org.ntlab.trace.FieldAccess:1699553004257849
pre:org.ntlab.trace.FieldAccess:1699553004257849
post:org.ntlab.trace.BlockEnter:1699553004228229
pre:org.ntlab.trace.BlockEnter:1699553004228229
pre:org.ntlab.trace.MethodInvocation:1699553004208835
post:org.ntlab.trace.MethodInvocation:1699553003386885
post:org.ntlab.trace.MethodInvocation:1699553003805088
post:org.ntlab.trace.MethodInvocation:1699553004012075
post:org.ntlab.trace.FieldAccess:1699553004082951
pre:org.ntlab.trace.FieldAccess:1699553004082951
post:org.ntlab.trace.BlockEnter:1699553004029706
pre:org.ntlab.trace.BlockEnter:1699553004029706
pre:org.ntlab.trace.MethodInvocation:1699553004012075
post:org.ntlab.trace.MethodInvocation:1699553003896769
post:org.ntlab.trace.FieldAccess:1699553003944020
pre:org.ntlab.trace.FieldAccess:1699553003944020
post:org.ntlab.trace.BlockEnter:1699553003912989
pre:org.ntlab.trace.BlockEnter:1699553003912989
pre:org.ntlab.trace.MethodInvocation:1699553003896769
post:org.ntlab.trace.FieldAccess:1699553003846345
pre:org.ntlab.trace.FieldAccess:1699553003846345
post:org.ntlab.trace.BlockEnter:1699553003818135
pre:org.ntlab.trace.BlockEnter:1699553003818135
pre:org.ntlab.trace.MethodInvocation:1699553003805088
post:org.ntlab.trace.MethodInvocation:1699553003482444
post:org.ntlab.trace.MethodInvocation:1699553003668273
post:org.ntlab.trace.FieldAccess:1699553003715876
pre:org.ntlab.trace.FieldAccess:1699553003715876
post:org.ntlab.trace.BlockEnter:1699553003688020
pre:org.ntlab.trace.BlockEnter:1699553003688020
pre:org.ntlab.trace.MethodInvocation:1699553003668273
post:org.ntlab.trace.MethodInvocation:1699553003556141
post:org.ntlab.trace.FieldAccess:1699553003599513
pre:org.ntlab.trace.FieldAccess:1699553003599513
post:org.ntlab.trace.BlockEnter:1699553003570951
pre:org.ntlab.trace.BlockEnter:1699553003570951
pre:org.ntlab.trace.MethodInvocation:1699553003556141
post:org.ntlab.trace.FieldAccess:1699553003526169
pre:org.ntlab.trace.FieldAccess:1699553003526169
post:org.ntlab.trace.BlockEnter:1699553003500427
pre:org.ntlab.trace.BlockEnter:1699553003500427
pre:org.ntlab.trace.MethodInvocation:1699553003482444
post:org.ntlab.trace.FieldAccess:1699553003436956
pre:org.ntlab.trace.FieldAccess:1699553003436956
post:org.ntlab.trace.BlockEnter:1699553003400637
pre:org.ntlab.trace.BlockEnter:1699553003400637
pre:org.ntlab.trace.MethodInvocation:1699553003386885
post:org.ntlab.trace.FieldAccess:1699553003355502
pre:org.ntlab.trace.FieldAccess:1699553003355502
post:org.ntlab.trace.FieldAccess:1699553003299083
pre:org.ntlab.trace.FieldAccess:1699553003299083
post:org.ntlab.trace.BlockEnter:1699553003273695
pre:org.ntlab.trace.BlockEnter:1699553003273695
pre:org.ntlab.trace.MethodInvocation:1699553003253243
post:org.ntlab.trace.MethodInvocation:1699552993730471
post:org.ntlab.trace.FieldUpdate:1699553003190477
pre:org.ntlab.trace.FieldUpdate:1699553003190477
post:org.ntlab.trace.MethodInvocation:1699553001472175
post:org.ntlab.trace.FieldUpdate:1699553003149926
pre:org.ntlab.trace.FieldUpdate:1699553003149926
post:org.ntlab.trace.MethodInvocation:1699553002201034
post:org.ntlab.trace.FieldUpdate:1699553003101618
pre:org.ntlab.trace.FieldUpdate:1699553003101618
post:org.ntlab.trace.MethodInvocation:1699553003026510
pre:org.ntlab.trace.MethodInvocation:1699553003026510
pre:org.ntlab.trace.MethodInvocation:1699553002201034
pre:org.ntlab.trace.MethodInvocation:1699553001472175
post:org.ntlab.trace.FieldUpdate:1699553000682666
pre:org.ntlab.trace.FieldUpdate:1699553000682666
post:org.ntlab.trace.MethodInvocation:1699552994339441
post:org.ntlab.trace.FieldUpdate:1699553000640352
pre:org.ntlab.trace.FieldUpdate:1699553000640352
post:org.ntlab.trace.MethodInvocation:1699552994979793
post:org.ntlab.trace.FieldUpdate:1699553000596627
pre:org.ntlab.trace.FieldUpdate:1699553000596627
post:org.ntlab.trace.MethodInvocation:1699552995575363
post:org.ntlab.trace.FieldUpdate:1699553000551845
pre:org.ntlab.trace.FieldUpdate:1699553000551845
post:org.ntlab.trace.MethodInvocation:1699552996163881
post:org.ntlab.trace.FieldUpdate:1699553000508121
pre:org.ntlab.trace.FieldUpdate:1699553000508121
post:org.ntlab.trace.MethodInvocation:1699552996774613
post:org.ntlab.trace.FieldUpdate:1699553000463691
pre:org.ntlab.trace.FieldUpdate:1699553000463691
post:org.ntlab.trace.MethodInvocation:1699552997363836
post:org.ntlab.trace.FieldUpdate:1699553000422435
pre:org.ntlab.trace.FieldUpdate:1699553000422435
post:org.ntlab.trace.MethodInvocation:1699552997949532
post:org.ntlab.trace.FieldUpdate:1699553000376947
pre:org.ntlab.trace.FieldUpdate:1699553000376947
post:org.ntlab.trace.MethodInvocation:1699552998548628
post:org.ntlab.trace.FieldUpdate:1699553000331107
pre:org.ntlab.trace.FieldUpdate:1699553000331107
post:org.ntlab.trace.MethodInvocation:1699552999050402
post:org.ntlab.trace.FieldUpdate:1699553000290908
pre:org.ntlab.trace.FieldUpdate:1699553000290908
post:org.ntlab.trace.MethodInvocation:1699552999466490
post:org.ntlab.trace.FieldUpdate:1699553000259878
pre:org.ntlab.trace.FieldUpdate:1699553000259878
post:org.ntlab.trace.MethodInvocation:1699552999875526
post:org.ntlab.trace.FieldUpdate:1699553000225322
pre:org.ntlab.trace.FieldUpdate:1699553000225322
post:org.ntlab.trace.MethodInvocation:1699553000173135
pre:org.ntlab.trace.MethodInvocation:1699553000173135
pre:org.ntlab.trace.MethodInvocation:1699552999875526
pre:org.ntlab.trace.MethodInvocation:1699552999466490
pre:org.ntlab.trace.MethodInvocation:1699552999050402
pre:org.ntlab.trace.MethodInvocation:1699552998548628
pre:org.ntlab.trace.MethodInvocation:1699552997949532
pre:org.ntlab.trace.MethodInvocation:1699552997363836
pre:org.ntlab.trace.MethodInvocation:1699552996774613
pre:org.ntlab.trace.MethodInvocation:1699552996163881
pre:org.ntlab.trace.MethodInvocation:1699552995575363
pre:org.ntlab.trace.MethodInvocation:1699552994979793
pre:org.ntlab.trace.MethodInvocation:1699552994339441
pre:org.ntlab.trace.MethodInvocation:1699552993730471
post:org.ntlab.trace.BlockEnter:1699552992988213
pre:org.ntlab.trace.BlockEnter:1699552992988213
 */
}