Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 333772

Summary: empty replacement is not allowed in property replace function, but should be
Product: z_Archived Reporter: Matthew Webber <matthew>
Component: BuckminsterAssignee: buckminster.core-inbox <buckminster.core-inbox>
Status: NEW --- QA Contact:
Severity: minor    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Matthew Webber CLA 2011-01-07 12:33:19 EST
In an rmap I have the following:
  <rm:propertyElement key="subversion_authentication_string">
    <bc:replace pattern=".*not\.set.*" replacement="">
      <bc:constant value="${svn.username}:${svn.password}@"/>
    </bc:replace>
  </rm:propertyElement>
  <rm:propertyElement key="subversion_url">
    <bc:constant value="https://${subversion_authentication_string}myserver/svn"/>
  </rm:propertyElement>

The idea here is that is svn.username and svn.password are both set (on the command line or in the CQUERY), then ${subversion_authentication_string} will contain the appropriate text, otherwise it will be the empty string.

However, this results in
org.xml.sax.SAXParseException: pattern but no replacement
(I get the same result if I omit the replacement= attribute entirely).

I can work around this, but it seems to me that an empty string should be a valid replacement.