try { if (currentNode != null && !currentNodeUpdated) { log.debug("Updating current node " + currentNode.getName()); JMeterGUIComponent comp = getGui(currentNode.getTestElement()); TestElement el = currentNode.getTestElement(); comp.modifyTestElement(el); } if (currentNode != treeListener.getCurrentNode()) { currentNodeUpdated = true; } currentNode = treeListener.getCurrentNode(); } catch (Exception e) { log.error("Problem retrieving gui", e); }
try { if (currentNode != null && !currentNodeUpdated) { log.debug("Updating current node " + currentNode.getName()); JMeterGUIComponent comp = getGui(currentNode.getTestElement()); TestElement el = currentNode.getTestElement(); comp.modifyTestElement(el); } // The current node is now updated currentNodeUpdated = true; currentNode = treeListener.getCurrentNode(); } catch (Exception e) { log.error("Problem retrieving gui", e); }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/ReportGuiPackage.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/GuiPackage.java
Method name: void updateCurrentNode() Method name: void updateCurrentNode()
Number of AST nodes: 9 Number of AST nodes: 8
1
try {
1
try {
2
			if (currentNode != null && !currentNodeUpdated) {
2
			if (currentNode != null && !currentNodeUpdated) {
3
				log.debug("Updating current node " + currentNode.getName());
3
				log.debug("Updating current node " + currentNode.getName());
4
				JMeterGUIComponent comp = getGui(currentNode.getTestElement());
4
				JMeterGUIComponent comp = getGui(currentNode.getTestElement());
5
				TestElement el = currentNode.getTestElement();
5
				TestElement el = currentNode.getTestElement();
6
				comp.modifyTestElement(el);
6
				comp.modifyTestElement(el);
7
			}
7
			}
8
			if (currentNode != treeListener.getCurrentNode()) {
8
			// The current node is now updated
9
				currentNodeUpdated = true;
9
			currentNodeUpdated = true;
10
			}
10
			
11
			currentNode = treeListener.getCurrentNode();
11
currentNode = treeListener.getCurrentNode();
12
		} catch (Exception e) {
12
		} catch (Exception e) {
13
			log.error("Problem retrieving gui", e);
13
			log.error("Problem retrieving gui", e);
14
		}
14
		}
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.8
Clones locationClones are in different classes
Number of node comparisons32
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment2
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)5.6
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    try
    1
    try
    2
    if (currentNode != null && !currentNodeUpdated)
    2
    if (currentNode != null && !currentNodeUpdated)
    2
    if (currentNode != null && !currentNodeUpdated)
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.report.gui.tree.ReportTreeNodeorg.apache.jmeter.gui.tree.JMeterTreeNodeSUBCLASS_TYPE_MISMATCH
    2
    if (currentNode != null && !currentNodeUpdated)
    3
    log.debug("Updating current node " + currentNode.getName());
    3
    log.debug("Updating current node " + currentNode.getName());
    3
    log.debug("Updating current node " + currentNode.getName());
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.report.gui.tree.ReportTreeNodeorg.apache.jmeter.gui.tree.JMeterTreeNodeSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public java.lang.String getName()
    3
    log.debug("Updating current node " + currentNode.getName());
    4
    JMeterGUIComponent comp = getGui(currentNode.getTestElement());
    4
    JMeterGUIComponent comp = getGui(currentNode.getTestElement());
    4
    JMeterGUIComponent comp = getGui(currentNode.getTestElement());
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.report.gui.tree.ReportTreeNodeorg.apache.jmeter.gui.tree.JMeterTreeNodeSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public org.apache.jmeter.testelement.TestElement getTestElement()
    4
    JMeterGUIComponent comp = getGui(currentNode.getTestElement());
    5
    TestElement el = currentNode.getTestElement();
    5
    TestElement el = currentNode.getTestElement();
    5
    TestElement el = currentNode.getTestElement();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.report.gui.tree.ReportTreeNodeorg.apache.jmeter.gui.tree.JMeterTreeNodeSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public org.apache.jmeter.testelement.TestElement getTestElement()
    5
    TestElement el = currentNode.getTestElement();
    6
    comp.modifyTestElement(el);
    6
    comp.modifyTestElement(el);
                                                          
    7
    currentNodeUpdated = true;
    Preondition Violations
    Unmatched statement currentNodeUpdated=true; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    7
    currentNodeUpdated = true;
    7
    if (currentNode != treeListener.getCurrentNode())
                                                                                                          
    8
    currentNodeUpdated = true;
    8
    currentNodeUpdated = true;
    Preondition Violations
    Unmatched statement currentNodeUpdated=true; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                          
    9
    currentNode = treeListener.getCurrentNode();
    9
    currentNode = treeListener.getCurrentNode();
    8
    currentNode = treeListener.getCurrentNode();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.report.gui.tree.ReportTreeNodeorg.apache.jmeter.gui.tree.JMeterTreeNodeSUBCLASS_TYPE_MISMATCH
    org.apache.jmeter.report.gui.tree.ReportTreeListenerorg.apache.jmeter.gui.tree.JMeterTreeListenerSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression treeListener cannot be unified with expression treeListener , because common superclass javax.swing.event.TreeSelectionListener does not declare member(s) public org.apache.jmeter.report.gui.tree.ReportTreeNode getCurrentNode() , public org.apache.jmeter.gui.tree.JMeterTreeNode getCurrentNode()
    8
    currentNode = treeListener.getCurrentNode();
    Precondition Violations (6)
    Row Violation
    1Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public java.lang.String getName()
    2Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public org.apache.jmeter.testelement.TestElement getTestElement()
    3Expression currentNode cannot be unified with expression currentNode , because common superclass javax.swing.tree.DefaultMutableTreeNode does not declare member(s) public org.apache.jmeter.testelement.TestElement getTestElement()
    4Unmatched statement currentNodeUpdated=true; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    5Unmatched statement currentNodeUpdated=true; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    6Expression treeListener cannot be unified with expression treeListener , because common superclass javax.swing.event.TreeSelectionListener does not declare member(s) public org.apache.jmeter.report.gui.tree.ReportTreeNode getCurrentNode() , public org.apache.jmeter.gui.tree.JMeterTreeNode getCurrentNode()