You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (Jira)" <ji...@apache.org> on 2021/07/24 15:50:00 UTC

[jira] [Created] (MNG-7194) PluginParameterExpressionEvaluator incorrectly interpolates unknown subexpression

Robert Scholte created MNG-7194:
-----------------------------------

             Summary: PluginParameterExpressionEvaluator incorrectly interpolates unknown subexpression
                 Key: MNG-7194
                 URL: https://issues.apache.org/jira/browse/MNG-7194
             Project: Maven
          Issue Type: Bug
          Components: Inheritance and Interpolation
            Reporter: Robert Scholte


The PluginParameterExpressionEvaluator evaluate(String,Class)-method ends like this:

{code:java}
        if ( value instanceof String )
        {
            // TODO: without #, this could just be an evaluate call...
            String val = (String) value;
            int exprStartDelimiter = val.indexOf( "${" );
            if ( exprStartDelimiter >= 0 )
            {
                if ( exprStartDelimiter > 0 )
                {
                    value = val.substring( 0, exprStartDelimiter ) + evaluate( val.substring( exprStartDelimiter ) );
                }
                else
                {
                    value = evaluate( val.substring( exprStartDelimiter ) );
                }
            }
        }
{code}

Assume that pre${unknown} needs to be evaluated and {{unknown}} does not exist, the result well be "{{prenull}}"

Just ${unknown} evaluates to null, but because there's no String concat it will be a real null.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)