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

Hudson commented on MANTRUN-204:
--------------------------------

SUCCESS: Integrated in Jenkins build maven-plugins #8996 (See 
[https://builds.apache.org/job/maven-plugins/8996/])
[MANTRUN-204] antrun loops the backing map of java.util.Properties withouth 
checking type safety

Avoid blind casts to String when copying Ant project properties to Maven 
properties. (gboue: [http://svn.apache.org/viewvc/?view=rev&rev=1798389])
* (add) maven-antrun-plugin/src/it/export-ant-properties
* (add) maven-antrun-plugin/src/it/export-ant-properties/invoker.properties
* (add) maven-antrun-plugin/src/it/export-ant-properties/pom.xml
* (edit) 
maven-antrun-plugin/src/main/java/org/apache/maven/plugins/antrun/AntRunMojo.java


> 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