diff --git a/src/org/ntlab/deltaViewer/DeltaViewer.java b/src/org/ntlab/deltaViewer/DeltaViewer.java index 4f52ab5..ea36f70 100644 --- a/src/org/ntlab/deltaViewer/DeltaViewer.java +++ b/src/org/ntlab/deltaViewer/DeltaViewer.java @@ -1301,11 +1301,11 @@ if (curFrame == 0) { MethodExecution callerMethodExec = methodExec.getCallerMethodExecution(); - if (methodExecSignature != callerMethodExec.getSignature() && objectToVertexMap.containsKey(callerMethodExec.getThisObjId())) { + if (callerMethodExec != null && methodExecSignature != callerMethodExec.getSignature() && objectToVertexMap.containsKey(callerMethodExec.getThisObjId()) && eStructure.getCoordinator() == callerMethodExec) { createMethodExecutionVertex(callerMethodExec.getThisObjId(), callerMethodExec.getSignature(), callerMethodExec); } createMethodExecutionVertex(objId, methodExecSignature, methodExec); - } else if (alias.getObjectId().matches("0")) { + } else if (alias.getObjectId().matches("0") && !methodExecToVertexMap.containsKey(methodExec)) { createMethodExecutionVertex(objId, methodExecSignature, methodExec); } } diff --git a/src/org/ntlab/deltaViewer/DeltaViewerSample.java b/src/org/ntlab/deltaViewer/DeltaViewerSample.java index 6ed41c2..75f04bb 100644 --- a/src/org/ntlab/deltaViewer/DeltaViewerSample.java +++ b/src/org/ntlab/deltaViewer/DeltaViewerSample.java @@ -132,6 +132,8 @@ // String argsKey = "pre_Exp1"; // String argsKey = "worstCase"; // String argsKey = "sample1"; +// String argsKey = "objTrace5"; + long time = System.nanoTime(); TraceJSON trace = new TraceJSON(argsMap.get(argsKey)[4]); DeltaExtractorJSON s = new DeltaExtractorJSON(trace); @@ -213,6 +215,7 @@ String[] delta_eg5 = {null, null, "E","C", "traces/testTrace5.txt", CONTAINER_COMPONENT_COLLECTION}; map.put("delta_eg5", delta_eg5); String[] testTrace2 = {null, null, "","", "traces/testTrace2.txt", CONTAINER_COMPONENT_COLLECTION}; map.put("testTrace2", testTrace2); String[] testTrace3 = {null, null, "","", "traces/testTrace3.txt", CONTAINER_COMPONENT_COLLECTION}; map.put("testTrace3", testTrace3); + String[] objTrace5 = {null, null, "A","B", "traces/objTraceSample5.txt", CONTAINER_COMPONENT_COLLECTION}; map.put("objTrace5", objTrace5); // �\�������̂Ƃ��ɗp����Toy program String[] pre_Exp1 = {null, null, "E","C", "traces/pre_Exp1.txt", CONTAINER_COMPONENT_COLLECTION}; map.put("pre_Exp1", pre_Exp1); diff --git a/traces/objTraceSample5.txt b/traces/objTraceSample5.txt new file mode 100644 index 0000000..9e434b1 --- /dev/null +++ b/traces/objTraceSample5.txt @@ -0,0 +1,35 @@ +{"type":"classDef","name":"Main","path":"/C:/Users/student/runtime-EclipseApplication/Sample5/bin/Main.class","loaderPath":"/"}, +{"type":"methodEntry","signature":"public static void Main.main(java.lang.String[])","receiver":{"class":"Main","id":0},"args":[{"class":"[Ljava.lang.String;","id":1160460865}],"threadId":1,"time":798170997138400}, +{"type":"blockEntry","methodSignature":"Main.main(java.lang.String[])","blockId":0,"incomings":0,"threadId":1,"lineNum":5,"time":798170997240700}, +{"type":"methodCall","callerSideSignature":"A()","threadId":1,"lineNum":5}, +{"type":"classDef","name":"A","path":"/C:/Users/student/runtime-EclipseApplication/Sample5/bin/A.class","loaderPath":"/"}, +{"type":"constructorEntry","signature":"public A()","class":"A","args":[],"threadId":1,"time":798170998181100}, +{"type":"fieldSet","fieldName":"A.b","container":{"class":"A","id":258952499},"value":{"class":"---","id":0},"threadId":1,"lineNum":3,"time":798170998263300}, +{"type":"constructorExit","shortSignature":"A()","returnValue":{"class":"A","id":258952499},"threadId":1,"time":798170998282400}, +{"type":"methodCall","callerSideSignature":"A()","threadId":1,"lineNum":6}, +{"type":"constructorEntry","signature":"public A()","class":"A","args":[],"threadId":1,"time":798170998302400}, +{"type":"fieldSet","fieldName":"A.b","container":{"class":"A","id":603742814},"value":{"class":"---","id":0},"threadId":1,"lineNum":3,"time":798170998324800}, +{"type":"constructorExit","shortSignature":"A()","returnValue":{"class":"A","id":603742814},"threadId":1,"time":798170998338000}, +{"type":"methodCall","callerSideSignature":"B()","threadId":1,"lineNum":7}, +{"type":"classDef","name":"B","path":"/C:/Users/student/runtime-EclipseApplication/Sample5/bin/B.class","loaderPath":"/"}, +{"type":"constructorEntry","signature":"public B()","class":"B","args":[],"threadId":1,"time":798170999833500}, +{"type":"constructorExit","shortSignature":"B()","returnValue":{"class":"B","id":1325547227},"threadId":1,"time":798170999867200}, +{"type":"methodCall","callerSideSignature":"B()","threadId":1,"lineNum":8}, +{"type":"constructorEntry","signature":"public B()","class":"B","args":[],"threadId":1,"time":798170999886200}, +{"type":"constructorExit","shortSignature":"B()","returnValue":{"class":"B","id":980546781},"threadId":1,"time":798170999903700}, +{"type":"methodCall","callerSideSignature":"A.setB(B)","threadId":1,"lineNum":9}, +{"type":"methodEntry","signature":"public void A.setB(B)","receiver":{"class":"A","id":258952499},"args":[{"class":"B","id":980546781}],"threadId":1,"time":798170999940600}, +{"type":"blockEntry","methodSignature":"A.setB(B)","blockId":0,"incomings":0,"threadId":1,"lineNum":6,"time":798170999952900}, +{"type":"fieldSet","fieldName":"A.b","container":{"class":"A","id":258952499},"value":{"class":"B","id":980546781},"threadId":1,"lineNum":6,"time":798170999988000}, +{"type":"methodExit","shortSignature":"A.setB(B)","receiver":{"class":"A","id":258952499},"returnValue":{"class":"void","id":0},"threadId":1,"time":798171000025400}, +{"type":"methodCall","callerSideSignature":"A.setB(B)","threadId":1,"lineNum":10}, +{"type":"methodEntry","signature":"public void A.setB(B)","receiver":{"class":"A","id":603742814},"args":[{"class":"B","id":1325547227}],"threadId":1,"time":798171000082900}, +{"type":"blockEntry","methodSignature":"A.setB(B)","blockId":0,"incomings":0,"threadId":1,"lineNum":6,"time":798171000100300}, +{"type":"fieldSet","fieldName":"A.b","container":{"class":"A","id":603742814},"value":{"class":"B","id":1325547227},"threadId":1,"lineNum":6,"time":798171000116000}, +{"type":"methodExit","shortSignature":"A.setB(B)","receiver":{"class":"A","id":603742814},"returnValue":{"class":"void","id":0},"threadId":1,"time":798171000130200}, +{"type":"methodCall","callerSideSignature":"A.getB()","threadId":1,"lineNum":11}, +{"type":"methodEntry","signature":"public B A.getB()","receiver":{"class":"A","id":258952499},"args":[],"threadId":1,"time":798171000164100}, +{"type":"blockEntry","methodSignature":"A.getB()","blockId":0,"incomings":0,"threadId":1,"lineNum":10,"time":798171000174500}, +{"type":"fieldGet","fieldName":"A.b","this":{"class":"A","id":258952499},"container":{"class":"A","id":258952499},"value":{"class":"B","id":980546781},"threadId":1,"lineNum":10,"time":798171000194100}, +{"type":"methodExit","shortSignature":"A.getB()","receiver":{"class":"A","id":258952499},"returnValue":{"class":"B","id":980546781},"threadId":1,"time":798171000218900}, +{"type":"methodExit","shortSignature":"Main.main(java.lang.String[])","receiver":{"class":"Main","id":0},"returnValue":{"class":"void","id":0},"threadId":1,"time":798171000234300},