Author: gnodet
Date: Fri Mar 16 07:36:18 2012
New Revision: 1301355
URL: http://svn.apache.org/viewvc?rev=1301355&view=rev
Log:
[FELIX-3396] Fix more cases, patch from Forrest Xia
Modified:
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
Modified:
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
URL:
http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java?rev=1301355&r1=1301354&r2=1301355&view=diff
==============================================================================
---
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
(original)
+++
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
Fri Mar 16 07:36:18 2012
@@ -320,10 +320,7 @@ public class ConfigInstaller implements
Configuration findExistingConfiguration(String fileName) throws Exception
{
- // escape the special character in the filename
- fileName = fileName.replace("(", "\\(");
- fileName = fileName.replace(")", "\\)");
- String filter = "(" + DirectoryWatcher.FILENAME + "=" + fileName + ")";
+ String filter = "(" + DirectoryWatcher.FILENAME + "=" +
escapeFilterValue(fileName) + ")";
Configuration[] configurations =
getConfigurationAdmin().listConfigurations(filter);
if (configurations != null && configurations.length > 0)
{
@@ -335,4 +332,11 @@ public class ConfigInstaller implements
}
}
+ private String escapeFilterValue(String s) {
+ return s.replaceAll("[(]", "\\\\(").
+ replaceAll("[)]", "\\\\)").
+ replaceAll("[=]", "\\\\=").
+ replaceAll("[\\*]", "\\\\*");
+ }
+
}