maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Boué (JIRA) <j...@apache.org>
Subject [jira] [Closed] (MANTRUN-204) antrun loops the backing map of java.util.Properties withouth checking type safety
Date Sun, 11 Jun 2017 18:58:18 GMT

     [ https://issues.apache.org/jira/browse/MANTRUN-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Guillaume Boué closed MANTRUN-204.
----------------------------------
       Resolution: Fixed
         Assignee: Guillaume Boué
    Fix Version/s: 3.0.0

> antrun loops the backing map of java.util.Properties withouth checking type safety
> ----------------------------------------------------------------------------------
>
>                 Key: MANTRUN-204
>                 URL: https://issues.apache.org/jira/browse/MANTRUN-204
>             Project: Maven Antrun Plugin
>          Issue Type: Bug
>    Affects Versions: 1.8
>         Environment: seen in maven 3.3.3, maven 3.3.9
>            Reporter: Gene Smith
>            Assignee: Guillaume Boué
>             Fix For: 3.0.0
>
>
> In AntRunMojo's copyProperties method, visible at either of these:
>     http://svn.apache.org/viewvc/maven/plugins/tags/maven-antrun-plugin-1.8/src/main/java/org/apache/maven/plugin/antrun/AntRunMojo.java?view=markup#l401
>     http://grepcode.com/file/repo1.maven.org/maven2/org.apache.maven.plugins/maven-antrun-plugin/1.8/org/apache/maven/plugin/antrun/AntRunMojo.java#AntRunMojo
> This loop does not check the type of objects in the Properties object it is looping:
>  	        Properties mavenProps = mavenProject.getProperties();
>  	        for ( Map.Entry<?, ?> entry : mavenProps.entrySet() )
>  	        {
>  	            antProject.setProperty( (String) entry.getKey(), (String) entry.getValue()
);
>  	        }
> Antrun 1.7 used an iterator and java.util.Properties' getters and setters (so the conversion
was done for it).
> The Properties object itself allows access to the backing map but strongly discourages
using it.  For type safety, if you loop the entryset you need to check types (or check null
and call "toString" instead of casting).  Maven does NOT enforce the type of objects put into
that map, so
> some plugins put non String objects in it.  (In my use case, "org.eclipse.rcptt:rcptt-maven-plugin"
stores a boolean in it.)
> ....
> As a work around I antrun 1.7 in this usecase.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message