Skip to content

Commit

Permalink
[FIXED JENKINS-38037] Single-arg check for executable symbols fix
Browse files Browse the repository at this point in the history
Use the DescribableModel for symbols related to a meta-step when
determining whether they should be parsed as having a single required
argument.
  • Loading branch information
abayer committed Sep 7, 2016
1 parent f8c08e9 commit a06779a
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
Expand Up @@ -241,8 +241,10 @@ protected Object invokeDescribable(String symbol, Object _args) {

boolean singleArgumentOnly = false;
if (metaStep != null) {
DescribableModel<?> metaModel = new DescribableModel(metaStep.clazz);
singleArgumentOnly = metaModel.hasSingleRequiredParameter() && metaModel.getParameters().size() == 1;
Descriptor symbolDescriptor = SymbolLookup.get().findDescriptor(metaStep.getMetaStepArgumentType(), symbol);
DescribableModel<?> symbolModel = new DescribableModel(symbolDescriptor.clazz);

singleArgumentOnly = symbolModel.hasSingleRequiredParameter() && symbolModel.getParameters().size() == 1;
}

// The only time a closure is valid is when the resulting Describable is immediately executed via a meta-step
Expand Down

0 comments on commit a06779a

Please sign in to comment.