From 87c3bf1e50ad6949e1fedff2429d41e79abfc971 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Tue, 7 Feb 2012 14:39:40 +0200 Subject: [PATCH] getParent() shouldn't throw npe when widget's parent is null --- .../gwt/client/ui/VAbstractPaintableWidget.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java index 474e9c416d..9747deacd1 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java @@ -15,7 +15,7 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget { private ApplicationConnection connection; private String id; private VPaintableWidgetContainer parent; - + /* State variables */ private boolean enabled = true; @@ -86,21 +86,24 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget { } public VPaintableWidgetContainer getParent() { - if (parent != null) + if (parent != null) { return parent; - + } + // FIXME: Hierarchy should be set by framework instead of looked up here VPaintableMap paintableMap = VPaintableMap.get(getConnection()); Widget w = getWidgetForPaintable(); - while (w != null) { + while (true) { w = w.getParent(); + if (w == null) { + return null; + } if (paintableMap.isPaintable(w)) { - parent = (VPaintableWidgetContainer) paintableMap.getPaintable(w); + parent = (VPaintableWidgetContainer) paintableMap + .getPaintable(w); return parent; } } - - return null; } } -- 2.39.5