Author: dmaliarevich
Date: 2011-09-30 08:14:58 -0400 (Fri, 30 Sep 2011)
New Revision: 35215
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeDomMapping.java
Log:
https://issues.jboss.org/browse/JBIDE-9807 , revert back to iterator.
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeDomMapping.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeDomMapping.java 2011-09-30
11:57:03 UTC (rev 35214)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mapping/VpeDomMapping.java 2011-09-30
12:14:58 UTC (rev 35215)
@@ -75,10 +75,23 @@
}
public VpeNodeMapping getNodeMappingAtVisualNode(nsIDOMNode visualNode) {
- if(visualNode!=null) {
- return visualMap.get(visualNode);
+ VpeNodeMapping nodeMapping = null;
+ /*
+ * See
https://issues.jboss.org/browse/JBIDE-9807
+ * Method map.get(key) doesn't work correctly for this situation,
+ * it happens because "visualMap.keySet().contains(visualNode)"
+ * not always correctly determines the "visualNode".
+ */
+ if (visualNode != null) {
+ Iterator<Map.Entry<nsIDOMNode, VpeNodeMapping>> iter =
visualMap.entrySet().iterator();
+ while(iter.hasNext()) {
+ Map.Entry<nsIDOMNode,VpeNodeMapping> element = iter.next();
+ if (visualNode.equals(element.getKey())) {
+ nodeMapping = element.getValue();
+ }
+ }
}
- return null;
+ return nodeMapping;
}
public nsIDOMNode getVisualNode(Node sourceNode) {
@@ -86,7 +99,6 @@
if (nodeMapping != null) {
return nodeMapping.getVisualNode();
}
-
return null;
}