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 {