[ 
https://issues.apache.org/jira/browse/MANTRUN-204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16046043#comment-16046043
 ] 

Guillaume Boué commented on MANTRUN-204:
----------------------------------------

{{copyProperties( Project antProject, MavenProject mavenProject )}} improved in 
[r1798389|http://svn.apache.org/viewvc?rev=1798389&view=rev].

> 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
>
> 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)

Reply via email to