public void doAction(ActionEvent e) { JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JMeterTreeNode[] nodes = treeListener.getSelectedNodes(); setCopiedNodes(nodes); } public static JMeterTreeNode[] getCopiedNodes() { for (int i = 0; i < copiedNodes.length; i++) { if (copiedNodes[i] == null) { return null; } } return cloneTreeNodes(copiedNodes); } public static JMeterTreeNode getCopiedNode() { if (copiedNode == null) { return null; } return cloneTreeNode(copiedNode); } public static void setCopiedNode(JMeterTreeNode node) { copiedNode = cloneTreeNode(node); } public static JMeterTreeNode cloneTreeNode(JMeterTreeNode node) { JMeterTreeNode treeNode = (JMeterTreeNode) node.clone(); treeNode.setUserObject(((TestElement) node.getUserObject()).clone()); cloneChildren(treeNode, node); return treeNode; } public static void setCopiedNodes(JMeterTreeNode nodes[]) { copiedNodes = new JMeterTreeNode[nodes.length]; for (int i = 0; i < nodes.length; i++) { copiedNodes[i] = cloneTreeNode(nodes[i]); } } public static JMeterTreeNode[] cloneTreeNodes(JMeterTreeNode nodes[]) { JMeterTreeNode treeNodes[] = new JMeterTreeNode[nodes.length]; for (int i = 0; i < nodes.length; i++) { treeNodes[i] = cloneTreeNode(nodes[i]); } return treeNodes; } private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from) { Enumeration enumFrom = from.children(); while (enumFrom.hasMoreElements()) { JMeterTreeNode child = (JMeterTreeNode) enumFrom.nextElement(); JMeterTreeNode childClone = (JMeterTreeNode) child.clone(); childClone.setUserObject(((TestElement) child.getUserObject()).clone()); to.add(childClone); cloneChildren((JMeterTreeNode) to.getLastChild(), child);
public void doAction(ActionEvent e) { ReportTreeListener treeListener = ReportGuiPackage.getInstance() .getTreeListener(); ReportTreeNode[] nodes = treeListener.getSelectedNodes(); setCopiedNodes(nodes); } public static ReportTreeNode[] getCopiedNodes() { for (int i = 0; i < copiedNodes.length; i++) { if (copiedNodes[i] == null) { return null; } } return cloneTreeNodes(copiedNodes); } public static ReportTreeNode getCopiedNode() { if (copiedNode == null) { return null; } return cloneTreeNode(copiedNode); } public static void setCopiedNode(ReportTreeNode node) { copiedNode = cloneTreeNode(node); } public static ReportTreeNode cloneTreeNode(ReportTreeNode node) { ReportTreeNode treeNode = (ReportTreeNode) node.clone(); treeNode.setUserObject(((TestElement) node.getUserObject()).clone()); cloneChildren(treeNode, node); return treeNode; } public static void setCopiedNodes(ReportTreeNode nodes[]) { copiedNodes = new ReportTreeNode[nodes.length]; for (int i = 0; i < nodes.length; i++) { copiedNodes[i] = cloneTreeNode(nodes[i]); } } public static ReportTreeNode[] cloneTreeNodes(ReportTreeNode nodes[]) { ReportTreeNode treeNodes[] = new ReportTreeNode[nodes.length]; for (int i = 0; i < nodes.length; i++) { treeNodes[i] = cloneTreeNode(nodes[i]); } return treeNodes; } private static void cloneChildren(ReportTreeNode to, ReportTreeNode from) { Enumeration enumFrom = from.children(); while (enumFrom.hasMoreElements()) { ReportTreeNode child = (ReportTreeNode) enumFrom.nextElement(); ReportTreeNode childClone = (ReportTreeNode) child.clone(); childClone.setUserObject(((TestElement) child.getUserObject()) .clone()); to.add(childClone); cloneChildren((ReportTreeNode) to.getLastChild(), child);
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/action/Copy.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/report/gui/action/ReportCopy.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
public void doAction(ActionEvent e) {
1
public void doAction(ActionEvent e) {
2
		JMeterTreeListener treeListener = GuiPackage.getInstance()
2
		ReportTreeListener treeListener = ReportGuiPackage.getInstance()
3
.getTreeListener();
3
				.getTreeListener();
4
		JMeterTreeNode[] nodes = treeListener.getSelectedNodes();
4
		ReportTreeNode[] nodes = treeListener.getSelectedNodes();
5
		setCopiedNodes(nodes);
5
		setCopiedNodes(nodes);
6
	}
6
	}
7
	public static JMeterTreeNode[] getCopiedNodes() {
7
	public static ReportTreeNode[] getCopiedNodes() {
8
		for (int i = 0; i < copiedNodes.length; i++) {
8
		for (int i = 0; i < copiedNodes.length; i++) {
9
			if (copiedNodes[i] == null) {
9
			if (copiedNodes[i] == null) {
10
				return null;
10
				return null;
11
			}
11
			}
12
		}
12
		}
13
		return cloneTreeNodes(copiedNodes);
13
		return cloneTreeNodes(copiedNodes);
14
	}
14
	}
15
	public static JMeterTreeNode getCopiedNode() {
15
	public static ReportTreeNode getCopiedNode() {
16
		if (copiedNode == null) {
16
		if (copiedNode == null) {
17
			return null;
17
			return null;
18
		}
18
		}
19
		return cloneTreeNode(copiedNode);
19
		return cloneTreeNode(copiedNode);
20
	}
20
	}
21
	public static void setCopiedNode(JMeterTreeNode node) {
21
	public static void setCopiedNode(ReportTreeNode node) {
22
		copiedNode = cloneTreeNode(node);
22
		copiedNode = cloneTreeNode(node);
23
	}
23
	}
24
	public static JMeterTreeNode cloneTreeNode(JMeterTreeNode node) {
24
	public static ReportTreeNode cloneTreeNode(ReportTreeNode node) {
25
		JMeterTreeNode treeNode = (JMeterTreeNode) node.clone();
25
		ReportTreeNode treeNode = (ReportTreeNode) node.clone();
26
		treeNode.setUserObject(((TestElement) node.getUserObject()).clone());
26
		treeNode.setUserObject(((TestElement) node.getUserObject()).clone());
27
		cloneChildren(treeNode, node);
27
		cloneChildren(treeNode, node);
28
		return treeNode;
28
		return treeNode;
29
	}
29
	}
30
	public static void setCopiedNodes(JMeterTreeNode nodes[]) {
30
	public static void setCopiedNodes(ReportTreeNode nodes[]) {
31
		copiedNodes = new JMeterTreeNode[nodes.length];
31
		copiedNodes = new ReportTreeNode[nodes.length];
32
		for (int i = 0; i < nodes.length; i++) {
32
		for (int i = 0; i < nodes.length; i++) {
33
			copiedNodes[i] = cloneTreeNode(nodes[i]);
33
			copiedNodes[i] = cloneTreeNode(nodes[i]);
34
		}
34
		}
35
	}
35
	}
36
	public static JMeterTreeNode[] cloneTreeNodes(JMeterTreeNode nodes[]) {
36
	public static ReportTreeNode[] cloneTreeNodes(ReportTreeNode nodes[]) {
37
		JMeterTreeNode treeNodes[] = new JMeterTreeNode[nodes.length];
37
		ReportTreeNode treeNodes[] = new ReportTreeNode[nodes.length];
38
		for (int i = 0; i < nodes.length; i++) {
38
		for (int i = 0; i < nodes.length; i++) {
39
			treeNodes[i] = cloneTreeNode(nodes[i]);
39
			treeNodes[i] = cloneTreeNode(nodes[i]);
40
		}
40
		}
41
		return treeNodes;
41
		return treeNodes;
42
	}
42
	}
43
	private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from) {
43
	private static void cloneChildren(ReportTreeNode to, ReportTreeNode from) {
44
		Enumeration enumFrom = from.children();
44
		Enumeration enumFrom = from.children();
45
		while (enumFrom.hasMoreElements()) {
45
		while (enumFrom.hasMoreElements()) {
46
			JMeterTreeNode child = (JMeterTreeNode) enumFrom.nextElement();
46
			ReportTreeNode child = (ReportTreeNode) enumFrom.nextElement();
47
			JMeterTreeNode childClone = (JMeterTreeNode) child.clone();
47
			ReportTreeNode childClone = (ReportTreeNode) child.clone();
48
			childClone.setUserObject(((TestElement) child.getUserObject())
48
			childClone.setUserObject(((TestElement) child.getUserObject())
49
.clone());
49
					.clone());
50
			to.add(childClone);
50
			to.add(childClone);
51
			cloneChildren((JMeterTreeNode) to.getLastChild(), child);
51
			cloneChildren((ReportTreeNode) to.getLastChild(), child);
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0