diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 67bedefb83c5f0d67a9751e43da30b35be657eeb..58fcfeca68b372a5d70cf230ba00c0a168f83920 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -1062,13 +1062,16 @@ public class Functions { */ public Tag findAncestorTag(Map attributes, String nsUri, String local) { Tag tag = (Tag) attributes.get("ownerTag"); - while(tag!=null) { + if(tag==null) return null; + + while(true) { tag = TagSupport.findAncestorWithClass(tag.getParent(), StaplerDynamicTag.class); + if(tag==null) + return null; StaplerDynamicTag stag = (StaplerDynamicTag)tag; if(stag.getLocalName().equals(local) && stag.getNsUri().equals(nsUri)) return tag; } - return null; } private static final Pattern SCHEME = Pattern.compile("[a-z]+://.+");