--- /tmp/AttributesUtilities.java 2008-04-22 11:38:48.000000000 +0300 +++ AttributesUtilities.java 2008-04-22 11:38:30.000000000 +0300 @@ -191,6 +191,12 @@ /** Creates a new instance of SmartAttributeSet */ private Immutable(HashMap attribs) { this.attribs = attribs == null ? new HashMap() : attribs; + Object resolver = this.attribs.get(AttributeSet.ResolveAttribute); + if(resolver instanceof AttributeSet){ + setResolveParent((AttributeSet)resolver); + }else{ + //broken or null resolver key. Ignore (log if different class maybe ?) + } } public synchronized void setResolveParent(AttributeSet parent) { @@ -373,8 +379,9 @@ } for(AttributeSet delegate : delegates) { - if (delegate.isDefined(key)) { - return delegate.getAttribute(key); + Object attribute = delegate.getAttribute(key); + if(attribute != null){ + return attribute; } }