From 0542bda4aee9840b89ecfb7328b16d0647510e1f Mon Sep 17 00:00:00 2001 From: alexp Date: Tue, 22 Jun 2010 20:36:55 +0400 Subject: [PATCH] 6684401: JTree isExpanded should not call itself recursively Reviewed-by: rupashka --- src/share/classes/javax/swing/JTree.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/share/classes/javax/swing/JTree.java b/src/share/classes/javax/swing/JTree.java index f90ab56a9..c99584ed3 100644 --- a/src/share/classes/javax/swing/JTree.java +++ b/src/share/classes/javax/swing/JTree.java @@ -1986,20 +1986,17 @@ public class JTree extends JComponent implements Scrollable, Accessible * true if all nodes in the path are expanded */ public boolean isExpanded(TreePath path) { - if(path == null) - return false; - - // Is this node expanded? - Boolean value = expandedState.get(path); - if(value == null || !value.booleanValue()) + if(path == null) return false; + Object value; - // It is, make sure its parent is also expanded. - TreePath parentPath = path.getParentPath(); + do{ + value = expandedState.get(path); + if(value == null || !((Boolean)value).booleanValue()) + return false; + } while( (path=path.getParentPath())!=null ); - if(parentPath != null) - return isExpanded(parentPath); return true; } -- GitLab