You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2010/09/10 11:55:28 UTC

svn commit: r995727 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/GenericFileEndpoint.java main/java/org/apache/camel/converter/IOConverter.java test/java/org/apache/camel/component/file/FileConfigureTest.java

Author: ningjiang
Date: Fri Sep 10 09:55:28 2010
New Revision: 995727

URL: http://svn.apache.org/viewvc?rev=995727&view=rev
Log:
CAMEL-3112 Added a check on the charset option of the file endpoint

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java?rev=995727&r1=995726&r2=995727&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java Fri Sep 10 09:55:28 2010
@@ -29,6 +29,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.converter.IOConverter;
 import org.apache.camel.impl.ScheduledPollEndpoint;
 import org.apache.camel.processor.idempotent.MemoryIdempotentRepository;
 import org.apache.camel.spi.FactoryFinder;
@@ -285,6 +286,7 @@ public abstract class GenericFileEndpoin
     }
     
     public void setCharset(String charset) {
+        IOConverter.isValidateCharset(charset);
         this.charset = charset;
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java?rev=995727&r1=995726&r2=995727&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java Fri Sep 10 09:55:28 2010
@@ -40,6 +40,8 @@ import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.io.Writer;
 import java.net.URL;
+import java.nio.charset.Charset;
+import java.nio.charset.UnsupportedCharsetException;
 
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
@@ -407,4 +409,14 @@ public final class IOConverter {
         }
     }
     
+    public static void isValidateCharset(String charset) throws UnsupportedCharsetException {
+        if (charset != null) {
+            if (Charset.isSupported(charset)) {
+                Charset.forName(charset);
+                return;
+            }
+        }
+        throw new UnsupportedCharsetException(charset);
+    }
+    
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java?rev=995727&r1=995726&r2=995727&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/file/FileConfigureTest.java Fri Sep 10 09:55:28 2010
@@ -55,6 +55,14 @@ public class FileConfigureTest extends C
         FileEndpoint endpoint = resolveMandatoryEndpoint("file://target/foo/bar?charset=UTF-8", FileEndpoint.class);
         assertNotNull("Could not find endpoint: file://target/foo/bar?charset=UTF-8", endpoint);
         assertEquals("Get a wrong charset", "UTF-8", endpoint.getCharset());
+        
+        try {
+            resolveMandatoryEndpoint("file://target/foo/bar?charset=ASSI", FileEndpoint.class);
+            // The charset is wrong
+            fail("Expect a configure exception here");
+        } catch (Exception ex) {
+            assertTrue("Get the wrong exception type here", ex instanceof ResolveEndpointFailedException);
+        }
     }
 
     public void testConsumerConfigurations() throws Exception {