From 22ce57a68b7809c5a8f00f9ac4232b9abb6a32f0 Mon Sep 17 00:00:00 2001 From: Philippe Mouawad Date: Fri, 19 Apr 2013 20:31:01 +0000 Subject: [PATCH] Bug 54870 - Tree D&D may lost leaf nodes Bugzilla Id: 54870 git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1470027 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/jmeter/gui/tree/JMeterTreeTransferHandler.java | 8 +++++++- xdocs/changes.xml | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java b/src/core/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java index 5476fcdf47..91f455190b 100644 --- a/src/core/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java +++ b/src/core/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java @@ -247,12 +247,18 @@ public class JMeterTreeTransferHandler extends TransferHandler { // working on the original node would be harder as // you'll have to deal with the insertion index offset if you re-order a node inside a parent JMeterTreeNode copy = (JMeterTreeNode) nodes[i].clone(); + + // first copy the children as the call to copy.add will modify the collection we're iterating on Enumeration enumFrom = nodes[i].children(); + List tmp = new ArrayList(); while (enumFrom.hasMoreElements()) { JMeterTreeNode child = (JMeterTreeNode) enumFrom.nextElement(); - copy.add(child); + tmp.add(child); } + for (JMeterTreeNode jMeterTreeNode : tmp) { + copy.add(jMeterTreeNode); + } guiInstance.getTreeModel().insertNodeInto(copy, target, index++); nodesForRemoval.add(nodes[i]); } diff --git a/xdocs/changes.xml b/xdocs/changes.xml index e15c43e244..627a92c1cd 100644 --- a/xdocs/changes.xml +++ b/xdocs/changes.xml @@ -141,6 +141,7 @@ It was therefore necessary to change the shortcut.
  • 54504 - Resource string not found: [clipboard_node_read_error]
  • 54538 - GUI: context menu is too big
  • 54847 - Cut & Paste is broken with tree multi-selection
  • +
  • 54870 - Tree D&D may lost leaf nodes (affected nightly build)