Uploaded image for project: 'Maven Antrun Plugin'
  1. Maven Antrun Plugin
  2. MANTRUN-204

antrun loops the backing map of java.util.Properties withouth checking type safety

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.8
    • Fix Version/s: 3.0.0
    • Labels:
      None
    • Environment:
      seen in maven 3.3.3, maven 3.3.9

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              gboue Guillaume Boué
              Reporter:
              gene Gene Smith
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: