diff --git a/src/org/ntlab/deltaViewer/DeltaViewer.java b/src/org/ntlab/deltaViewer/DeltaViewer.java index 75dc438..0bc014f 100644 --- a/src/org/ntlab/deltaViewer/DeltaViewer.java +++ b/src/org/ntlab/deltaViewer/DeltaViewer.java @@ -1233,7 +1233,7 @@ */ private void createMethodExecutionVertex(String objId, String methodSignature, MethodExecution methodExec) { - if (methodSignature.contains(" ")) { + if (methodSignature.matches(".+\\(.*\\)")) { System.out.println(methodSignature); methodSignature = formatMethodSignature(methodSignature, methodExec.getThisClassName()); } @@ -1671,15 +1671,23 @@ String[] thisClassNames = thisClassName.split("\\."); methodSignatures = tmpMethodSignature.split("\\."); StringBuffer sb = new StringBuffer(); - for (int i = 0; i < methodSignatures.length; i++) { - if ((thisClassNames.length > i && !methodSignatures[i].equals(thisClassNames[i])) || thisClassNames.length <= i) { - sb.append(methodSignatures[i]); - if (methodSignatures.length - i > 1) sb.append("."); - } + int i = methodSignatures.length - 2; + if (i >= 0 && !thisClassNames[thisClassNames.length - 1].equals(methodSignatures[i])) { + if (thisClassNames[thisClassNames.length - 1].equals(methodSignatures[i + 1])) i += 1; + sb.append(methodSignatures[i]); + if (methodSignatures.length - i > 1) sb.append("."); } -// sb.append(tmpMethodSignature); + for (i = i + 1; i < methodSignatures.length; i++) { + sb.append(methodSignatures[i]); + if (methodSignatures.length - i > 1) sb.append("."); + } sb.append("()"); - return sb.toString(); + + String newMethodSignature = sb.toString(); + if (!newMethodSignature.isEmpty()) { + return newMethodSignature; + } + return methodSignature; } private String formatArrayName(String srcClassName) { diff --git a/src/org/ntlab/deltaViewer/MagnetRONFrame.java b/src/org/ntlab/deltaViewer/MagnetRONFrame.java index 8fdc0c5..8f76e41 100644 --- a/src/org/ntlab/deltaViewer/MagnetRONFrame.java +++ b/src/org/ntlab/deltaViewer/MagnetRONFrame.java @@ -54,101 +54,102 @@ } public Map.Entry extract() { - // DeltaExtractorJSON dex = new DeltaExtractorJSON(trace); - // HashMap threads = trace.getAllThreads(); - // ThreadInstance thread = threads.values().iterator().next(); // �Ō�̃X���b�h�����Ă��邾���c - // TracePoint tp = thread.getRoot().get(thread.getRoot().size() - 1).getExitPoint(); +// DeltaExtractorJSON dex = new DeltaExtractorJSON(trace); +// HashMap threads = trace.getAllThreads(); +// ThreadInstance thread = threads.values().iterator().next(); // �Ō�̃X���b�h�����Ă��邾���c +// TracePoint tp = thread.getRoot().get(thread.getRoot().size() - 1).getExitPoint(); - // System.out.println("===== All Statements Backward ====="); - // TracePoint tp = null; - // ExtractedStructure e = 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; - // e = dex.extract(new Reference(jHotDrawSelect3_1[0], jHotDrawSelect3_1[1], jHotDrawSelect3_1[2], jHotDrawSelect3_1[3]), tp, dac); - // dex.extract(tp); - // 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; - // } - // }); - // } +// System.out.println("===== All Statements Backward ====="); +// TracePoint tp = null; +// ExtractedStructure e = 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; +// e = dex.extract(new Reference(jHotDrawSelect3_1[0], jHotDrawSelect3_1[1], jHotDrawSelect3_1[2], jHotDrawSelect3_1[3]), tp, dac); +// dex.extract(tp); +// 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; +// } +// }); +// } - // HashSet marked = trace.getMarkedMethodSignatures(1255991806833871L, 1255991808597322L); - // HashSet marked = trace.getMarkedMethodSignatures(1699553004208835L, 1699553004739523L); - // System.out.println("===== Marked Methods ====="); - // for (String method: marked) { - // System.out.println(method); - // } - // HashSet unmarked = trace.getUnmarkedMethodSignatures(1255991806833871L, 1255991808597322L); - // HashSet unmarked = trace.getUnmarkedMethodSignatures(1699553004208835L, 1699553004739523L); - // System.out.println("===== Unmarked Methods ====="); - // for (String method: unmarked) { - // System.out.println(method); - // } +// HashSet marked = trace.getMarkedMethodSignatures(1255991806833871L, 1255991808597322L); +// HashSet marked = trace.getMarkedMethodSignatures(1699553004208835L, 1699553004739523L); +// System.out.println("===== Marked Methods ====="); +// for (String method: marked) { +// System.out.println(method); +// } +// HashSet unmarked = trace.getUnmarkedMethodSignatures(1255991806833871L, 1255991808597322L); +// HashSet unmarked = trace.getUnmarkedMethodSignatures(1699553004208835L, 1699553004739523L); +// System.out.println("===== Unmarked Methods ====="); +// for (String method: unmarked) { +// System.out.println(method); +// } // Change! // setArray, setCollection(2��ڈȍ~�͕K�v�Ȃ�) , foreach(thread) // ArrayList��add����ĂȂ� // �t�B�[���h�ɑ������Ă��Ȃ� - // HashMap threads = trace.getAllThreads(); - // for(ThreadInstance ti: threads.values()) { - // ArrayList roots = ti.getRoot(); - // for(MethodExecution root: roots) { - // traverseMethodExecution(root); - // } - // } +// HashMap threads = trace.getAllThreads(); +// for(ThreadInstance ti: threads.values()) { +// ArrayList roots = ti.getRoot(); +// for(MethodExecution root: roots) { +// traverseMethodExecution(root); +// } +// } + // Change Here! Map argsMap = new HashMap<>(); setArgmentsForDeltaExtract(argsMap); //���o�������f���^�̈������i�[����Map��key - // String argsKey = "ArgoUMLSelect"; -// String argsKey = "ArgoUMLDelete1"; - // String argsKey = "JHotDrawTransform"; - // String argsKey = "JHotDrawSelect3"; - // String argsKey = "sampleArray"; - // String argsKey = "sampleCollection"; - // String argsKey = "sampleCreate"; - // String argsKey = "sampleStatic"; - // String argsKey = "delta_eg1"; +// String argsKey = "ArgoUMLSelect"; +// String argsKey = "ArgoUMLDelete1"; +// String argsKey = "JHotDrawTransform"; +// String argsKey = "JHotDrawSelect3"; +// String argsKey = "sampleArray"; +// String argsKey = "sampleCollection"; +// String argsKey = "sampleCreate"; +// String argsKey = "sampleStatic"; +// String argsKey = "delta_eg1"; String argsKey = "pre_Exp1"; - // String argsKey = "worstCase"; - // String argsKey = "sample1"; - // String argsKey = "objTrace5"; +// String argsKey = "worstCase"; +// String argsKey = "sample1"; +// String argsKey = "objTrace5"; long time = System.nanoTime(); TraceJSON trace = new TraceJSON(argsMap.get(argsKey)[4]); @@ -173,9 +174,9 @@ if (argsMap.get(argsKey)[5] == CONTAINER_COMPONENT_COLLECTION) { reference.setCollection(true); } - // reference.setArray(true); - // reference.setFinalLocal(true); - // reference.setCreation(true); +// reference.setArray(true); +// reference.setFinalLocal(true); +// reference.setCreation(true); DeltaAliasTracker dac = new DeltaAliasTracker(); ExtractedStructure e = s.extract(reference, tp, dac); System.out.println(e); @@ -188,7 +189,7 @@ } } return new AbstractMap.SimpleEntry(eList.get(0), dacList.get(0)); -// startDeltaViewer(eList.get(0), dacList.get(0)); +// startDeltaViewer(eList.get(0), dacList.get(0)); } else { DeltaAliasTracker dac = new DeltaAliasTracker(); MethodExecution me = trace.getLastMethodExecution(argsMap.get(argsKey)[2]); @@ -196,7 +197,7 @@ ObjectReference ref = refs.keySet().iterator().next(); ExtractedStructure e = s.extract(refs.get(ref), ref, dac); return new AbstractMap.SimpleEntry(e, dac); -// startDeltaViewer(e, dac); +// startDeltaViewer(e, dac); } }