You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/04/26 10:11:16 UTC
svn commit: r1096693 - in /james/server/trunk/mailetcontainer-library/src:
main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java
test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java
Author: norman
Date: Tue Apr 26 08:11:16 2011
New Revision: 1096693
URL: http://svn.apache.org/viewvc?rev=1096693&view=rev
Log:
Fix truncated Mailet initialization parameters which happens if the value contains a comma. See JAMES-1232
Modified:
james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java
james/server/trunk/mailetcontainer-library/src/test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java
Modified: james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java?rev=1096693&r1=1096692&r2=1096693&view=diff
==============================================================================
--- james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java (original)
+++ james/server/trunk/mailetcontainer-library/src/main/java/org/apache/james/mailetcontainer/lib/MailetConfigImpl.java Tue Apr 26 08:11:16 2011
@@ -123,17 +123,29 @@ public class MailetConfigImpl implements
@SuppressWarnings("unchecked")
public void setConfiguration(Configuration newConfiguration) {
DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
+
+ // Disable the delimiter parsing. See JAMES-1232
+ builder.setDelimiterParsingDisabled(true);
Iterator<String> keys = newConfiguration.getKeys();
while (keys.hasNext()) {
String key = keys.next();
- String value = newConfiguration.getString(key);
+ String[] values = newConfiguration.getStringArray(key);
// See JAMES-1177
// Need to replace ".." with "."
// See
// http://commons.apache.org/configuration/userguide-1.2/howto_xml.html
// Escaping dot characters in XML tags
key = key.replaceAll("\\.\\.", "\\.");
- builder.addProperty(key, value);
+
+ // Convert array values to a "," delimited string value
+ StringBuilder valueBuilder = new StringBuilder();
+ for (int i = 0; i < values.length; i++) {
+ valueBuilder.append(values[i]);
+ if (i + 1 < values.length) {
+ valueBuilder.append(",");
+ }
+ }
+ builder.addProperty(key, valueBuilder.toString());
}
configuration = builder;
Modified: james/server/trunk/mailetcontainer-library/src/test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mailetcontainer-library/src/test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java?rev=1096693&r1=1096692&r2=1096693&view=diff
==============================================================================
--- james/server/trunk/mailetcontainer-library/src/test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java (original)
+++ james/server/trunk/mailetcontainer-library/src/test/java/org/apache/james/mailetcontainer/lib/MailetConfigImplTest.java Tue Apr 26 08:11:16 2011
@@ -51,4 +51,17 @@ public class MailetConfigImplTest extend
assertEquals("mail.debug", param);
assertEquals("true", config.getInitParameter(param));
}
+
+ // See JAMES-1232
+ public void testParamWithComma() throws ConfigurationException {
+ DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
+ builder.load(new ByteArrayInputStream("<mailet><whatever>value1,value2</whatever></mailet>".getBytes()));
+
+ MailetConfigImpl config = new MailetConfigImpl();
+ config.setConfiguration(builder);
+
+ String param = config.getInitParameterNames().next();
+ assertEquals("whatever", param);
+ assertEquals("value1,value2", config.getInitParameter(param));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org