Maven Resources Plugin
  1. Maven Resources Plugin
  2. MRESOURCES-110

escapeString is broken - break filtered output

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.4, 2.4.1
    • Fix Version/s: 2.5
    • Component/s: None
    • Labels:
      None
    • Environment:
      Maven 2.0.9, WinXP
    • Number of attachments :
      1

      Description

      If the escapeString parameter is specified in plugin configuration this will break the filtered output.

      For example the configuration

      <plugin>
         <artifactId>maven-resources-plugin</artifactId>
         <version>2.4.1</version>
         <configuration>
           <escapeString>!</escapeString>
         </configuration>
      </plugin>
      

      an file to filter (an XML file)

      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <!-- This is a comment ... until filtering ... -->
         <broken-tag>Why are my !\${\}\! static.content broken if the escapeString occure ?!?</broken-tag>
         <broken-tag>Content with replacement: ${replaceThis} !</broken-tag>
         <broken-tag>Content with escaped replacement: Do not !${replaceThis} !</broken-tag>
      </root>
      

      and a property

       <properties>
              <replaceThis>I am the replacement</replaceThis>
       </properties>
      

      from pom or profile.xml

      result in

      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <!- This is a comment ... until filtering ... -->
         <broken-tag>Why are my !${\}\!static.content broken if the escapeString occure ?!</broken-tag>
         <broken-tag>Content with replacement: I am the replacement !/broken-tag>
         <broken-tag>Content with escaped replacement: Do not ${replaceThis} !/broken-tag>
      </root>
      

      Note the broken comment and tags!
      If using Resources-Plugin 2.3 the output is like expected:

      <?xml version="1.0" encoding="UTF-8"?>
      <root>
          <!-- This is a comment ... until filtering ... -->
         <broken-tag>Why are my !\${\}\! static.content broken if the escapeString occure ?!?</broken-tag>
         <broken-tag>Content with replacement: I am the replacement !</broken-tag>
         <broken-tag>Content with escaped replacement: Do not ${replaceThis} !</broken-tag>
      </root>
      

      Got even worse when using a complex escape string like <escapeString>static</escapeString> (I know it's a silly example ). The result is

      <?xml version=".0" encoding="UTF-8"?>
      <root>
          <!-- This is acomment ... until filtering ... -->
         <broken-tag>Why are my !\${\}\! staticcontent broken if the escapeSring occure ?!?</broken-tag>
         <broken-tag>Content with replacement: I am the replacement !</broken-tag>
         <broken-tag>Content with escapedreplacement: Do not !I am the replacement !</broken-tag>
      </root>
      

      Note the missing characters all over the file ... :-/

      So the actual state of the escapeString feature is unpredictable and nearly useless.

        Issue Links

          Activity

          Hide
          Marco Rothe added a comment -

          Hmm, those "Unable to render embedded object: File " warnings are NOT part of my bug report ...

          Show
          Marco Rothe added a comment - Hmm, those "Unable to render embedded object: File " warnings are NOT part of my bug report ...
          Hide
          Andrew Williams added a comment -

          Yes, it strips the next character if the escapeString is not followed by a filter character.
          Very annoying!

          Show
          Andrew Williams added a comment - Yes, it strips the next character if the escapeString is not followed by a filter character. Very annoying!
          Hide
          Andreas Höhmann added a comment -

          I can reproduce the bug too.
          In my case this results in broken utf-8 encoding string

          ist keine g\u00FCltige Zahl

          will be "transformed" to

          ist keine g\00FCltige Zahl

          Show
          Andreas Höhmann added a comment - I can reproduce the bug too. In my case this results in broken utf-8 encoding string ist keine g\u00FCltige Zahl will be "transformed" to ist keine g\00FCltige Zahl
          Hide
          Eric Chatellier added a comment -

          This bug happens for us too

          Show
          Eric Chatellier added a comment - This bug happens for us too
          Hide
          Dennis Lundberg added a comment -

          A sample project.

          Show
          Dennis Lundberg added a comment - A sample project.

            People

            • Assignee:
              Olivier Lamy
              Reporter:
              Marco Rothe
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: