Return-Path: Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: (qmail 99374 invoked from network); 16 Apr 2011 11:48:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 16 Apr 2011 11:48:54 -0000 Received: (qmail 86813 invoked by uid 500); 16 Apr 2011 11:48:54 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 86789 invoked by uid 500); 16 Apr 2011 11:48:54 -0000 Mailing-List: contact mime4j-dev-help@james.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mime4j-dev@james.apache.org Delivered-To: mailing list mime4j-dev@james.apache.org Received: (qmail 86781 invoked by uid 99); 16 Apr 2011 11:48:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 16 Apr 2011 11:48:54 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 16 Apr 2011 11:48:53 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 8390F23889C5; Sat, 16 Apr 2011 11:48:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1093972 - in /james/mime4j/trunk/core/src: main/java/org/apache/james/mime4j/util/CharsetUtil.java test/java/org/apache/james/mime4j/util/CharsetUtilTest.java Date: Sat, 16 Apr 2011 11:48:33 -0000 To: mime4j-dev@james.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110416114833.8390F23889C5@eris.apache.org> Author: olegk Date: Sat Apr 16 11:48:33 2011 New Revision: 1093972 URL: http://svn.apache.org/viewvc?rev=1093972&view=rev Log: CharsetUtil#lookup to catch IllegalCharsetNameException; added javadocs and test cases Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/util/CharsetUtil.java james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/util/CharsetUtilTest.java Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/util/CharsetUtil.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/util/CharsetUtil.java?rev=1093972&r1=1093971&r2=1093972&view=diff ============================================================================== --- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/util/CharsetUtil.java (original) +++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/util/CharsetUtil.java Sat Apr 16 11:48:33 2011 @@ -20,6 +20,7 @@ package org.apache.james.mime4j.util; import java.nio.charset.Charset; +import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; /** @@ -119,13 +120,24 @@ public class CharsetUtil { } return true; } - + + /** + * Returns a {@link Charset} instance if character set with the given name + * is recognized and supported by Java runtime. Returns null + * otherwise. + *

+ * This method is a wrapper around {@link Charset#forName(String)} method + * that catches {@link IllegalCharsetNameException} and + * {@link UnsupportedCharsetException} and returns null. + */ public static Charset lookup(final String name) { if (name == null) { return null; } try { return Charset.forName(name); + } catch (IllegalCharsetNameException ex) { + return null; } catch (UnsupportedCharsetException ex) { return null; } Modified: james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/util/CharsetUtilTest.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/util/CharsetUtilTest.java?rev=1093972&r1=1093971&r2=1093972&view=diff ============================================================================== --- james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/util/CharsetUtilTest.java (original) +++ james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/util/CharsetUtilTest.java Sat Apr 16 11:48:33 2011 @@ -19,6 +19,8 @@ package org.apache.james.mime4j.util; +import java.nio.charset.Charset; + import junit.framework.TestCase; public class CharsetUtilTest extends TestCase { @@ -36,4 +38,21 @@ public class CharsetUtilTest extends Tes assertFalse(CharsetUtil.isASCII(RUSSIAN_HELLO)); } + public void testCharsetLookup() { + Charset c1 = CharsetUtil.lookup("us-ascii"); + Charset c2 = CharsetUtil.lookup("ascii"); + assertEquals(CharsetUtil.US_ASCII, c1); + assertEquals(CharsetUtil.US_ASCII, c2); + } + + public void testCharsetLookupNullInput() { + Charset c1 = CharsetUtil.lookup(null); + assertNull(c1); + } + + public void testCharsetLookupFailure() { + Charset c1 = CharsetUtil.lookup("whatever"); + assertNull(c1); + } + }