Maven 2.x Resources Plugin

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

Vote (2)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: