Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 59984 invoked from network); 27 Nov 2006 10:54:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Nov 2006 10:54:30 -0000 Received: (qmail 19256 invoked by uid 500); 27 Nov 2006 10:54:39 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 19110 invoked by uid 500); 27 Nov 2006 10:54:39 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 19099 invoked by uid 99); 27 Nov 2006 10:54:39 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Nov 2006 02:54:39 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Nov 2006 02:54:29 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 66BDC1A9846; Mon, 27 Nov 2006 02:53:52 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r479585 - /geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java Date: Mon, 27 Nov 2006 10:53:51 -0000 To: scm@geronimo.apache.org From: vamsic007@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061127105352.66BDC1A9846@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vamsic007 Date: Mon Nov 27 02:53:50 2006 New Revision: 479585 URL: http://svn.apache.org/viewvc?view=rev&rev=479585 Log: GERONIMO-2458 MapEditor does not work Modified: geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java Modified: geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java?view=diff&rev=479585&r1=479584&r2=479585 ============================================================================== --- geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java (original) +++ geronimo/server/branches/1.2/modules/geronimo-common/src/main/java/org/apache/geronimo/common/propertyeditor/MapEditor.java Mon Nov 27 02:53:50 2006 @@ -19,17 +19,22 @@ import java.io.ByteArrayInputStream; import java.io.IOException; +import java.util.Iterator; import java.util.Properties; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** - * A property editor for {@link java.util.Properties}. + * A property editor for {@link java.util.Map}. * * @version $Rev$ $Date$ */ public class MapEditor extends TextPropertyEditorSupport { + private static final Log log = LogFactory.getLog(MapEditor.class); /** * * @throws PropertyEditorException An IOException occured. @@ -50,11 +55,30 @@ Map map = (Map) getValue(); if (!(map instanceof Properties)) { Properties p = new Properties(); - if (map != null) { - p.putAll(map); + if(map != null) { + if(!map.containsKey(null) && !map.containsValue(null)) { + p.putAll(map); + } else { + // Map contains null keys or values. Replace null with empty string. + log.warn("Map contains null keys or values. Replacing null values with empty string."); + for(Iterator itr = map.entrySet().iterator(); itr.hasNext(); ) { + Map.Entry entry = (Map.Entry) itr.next(); + Object key = entry.getKey(); + Object value = entry.getValue(); + if(key == null) { + key = ""; + } + if(value == null) { + value = ""; + } + p.put(key, value); + } + } + map = p; } - map = p; } - return map.toString(); + PropertiesEditor pe = new PropertiesEditor(); + pe.setValue(map); + return pe.getAsText(); } }