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