[ 
http://jira.codehaus.org/browse/MRESOURCES-105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=192590#action_192590
 ] 

John Casey commented on MRESOURCES-105:
---------------------------------------

part of the problem with the NPE seems to be related to the way the 
PluginParameterExpressionEvaluator resolves plugin configuration in Maven. It 
seems that it will happily replace '${*}' with null as it processes a list of 
configuration values (so it's actually probably a problem in 
plexus-container-default, since that's where the expression-evaluator will 
inevitably hand off the value, I'm guessing).

I had to compensate for this in the remote-resources plugin by catching a null 
delimiter value and re-inserting '${*}' (I found it here after I'd already 
released the resources plugin). I don't think this will have serious side 
effects other than to say that using a custom delimiter such as '${filtered:*}' 
will result in '${*}' being passed in...again, this compensation has only 
happened in the remote resources plugin.

Without fixing maven itself, and probably plexus itself, I'm not sure how to do 
better.

> Custom Delimiters does not work as expected - NPE with ${*} and comments in 
> property file does break replacement
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: MRESOURCES-105
>                 URL: http://jira.codehaus.org/browse/MRESOURCES-105
>             Project: Maven 2.x Resources Plugin
>          Issue Type: Bug
>    Affects Versions: 2.4
>         Environment: Ubuntu Jaunty, Sun JDK 1.6.0_16, Maven 2.2.1
>            Reporter: Torsten Krah
>            Assignee: Olivier Lamy
>         Attachments: test.tar.bz2
>
>
> Hi, 
> using custom delimiters, stuff is not working as expected.
> <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-resources-plugin</artifactId>
>         <version>2.4</version>
>         <configuration>
>                 <useDefaultDelimiters>false</useDefaultDelimiters>
>                 <delimiters>
>                         <delimiter>$</delimiter>
>                         <delimiter>@</delimiter>
>                         <delimiter>#</delimiter>
>                         <delimiter>${*}</delimiter>
>                 </delimiters>
>                 <encoding>UTF-8</encoding>
>         </configuration>
> </plugin>
> mvn clean resources:resources does result in a NPE:
> java.lang.NullPointerException
>         at  
> org.codehaus.plexus.interpolation.multi.DelimiterSpecification.parse(DelimiterSpecification.java:54)
>         at 
> org.codehaus.plexus.interpolation.multi.MultiDelimiterStringSearchInterpolator.setDelimiterSpecs(MultiDelimiterStringSearchInterpolator.java:394)
>         ....
> Removing the ${*} it runs.
> However it breaks if "comments" are there in the property file. Using the 
> defaultDelimiters this is no problem.
> Additionally its not possible to use the default ones and specify additional 
> ones (maybe its a side effect and should work, don't know).
> The "$" gets ignored if i  use 
> <useDefaultDelimiters>true</useDefaultDelimiters> and  
> <delimiter>$</delimiter> .
> Look at the attached project for an non working example. ${*} is commented in 
> the pom, use it to get the NPE.
> Removing the first comment line from the property file does result in a 
> successfull replacement (but comments are ok there so it should run with it 
> too) - let the comment there and it does only replace the first occurence of 
> the property.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to