This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Lets say there are N nodes of the same type. Lets say a node has M properties in its property set. Selecting these nodes will cause each node to be queried (M+2) times for a full property set, which is at least (M+1) times too much. Ie. for example selecting 74 UML class nodes will cause 1184 queries (16 queries per node) instead of only necessary 74 queries. These M+2 times a node is queried for its full propery set from org.openide.explorer.propertysheet.ProxyNode.computePropertySets and org.openide.explorer.propertysheet.ProxyNode.createProxyProperty methods. Attached patch illustrates the problem and decreases the number of queries from M+2 to just 1 per node. In case of UML project class nodes it means for example 15 times decrease in the time spent to compute property sets (from 11 sec. (1184 queries) to 0.7 sec. (74 queries) on Intel Centrino Duo 2.33GHz for 74 nodes) The above mentioned queries result from the call stack below: ... at org.openide.explorer.propertysheet.ProxyNode.computePropertySets(ProxyNode.java:248) at org.openide.explorer.propertysheet.ProxyNode.createSheet(ProxyNode.java:129) at org.openide.nodes.AbstractNode.getSheet(AbstractNode.java:404) at org.openide.nodes.AbstractNode.getPropertySets(AbstractNode.java:415) at org.openide.explorer.propertysheet.PropertySheet.setCurrentNode(PropertySheet.java:568) at org.openide.explorer.propertysheet.PropertySheet.doSetNodes(PropertySheet.java:382) ....
Created attachment 38021 [details] ProxyNode.java.diff
fixed in trunk /cvs/openide/explorer/src/org/openide/explorer/propertysheet/ProxyNode.java,v <-- ProxyNode.java new revision: 1.7; previous revision: 1.6
The issue has been fixed in the release551 branch. Checking in ProxyNode.java; /cvs/openide/explorer/src/org/openide/explorer/propertysheet/ProxyNode.java,v <-- ProxyNode.java new revision: 1.1.14.1.2.1.22.1; previous revision: 1.1.14.1.2.1 done
The issue has been fixed in the release55_fixes branch. Checking in ProxyNode.java; /cvs/openide/explorer/src/org/openide/explorer/propertysheet/ProxyNode.java,v <-- ProxyNode.java new revision: 1.1.14.1.2.1.20.1; previous revision: 1.1.14.1.2.1 done
verified in the final NB 5.5 with fixes in the nbms applied along with build 070322 of UML module.