From dc785485de88924f3d7ce24064613dda1cb6e08c Mon Sep 17 00:00:00 2001 From: ymlam Date: Mon, 21 May 2012 19:52:17 +0000 Subject: [PATCH] Changed to use UTF8BenevolentDecoder class instead of generating a kind UTF-8 char decoder. --- src/altk/comm/engine/XMLDOMBroadcast.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/altk/comm/engine/XMLDOMBroadcast.java b/src/altk/comm/engine/XMLDOMBroadcast.java index 4e31c91..a5662d9 100644 --- a/src/altk/comm/engine/XMLDOMBroadcast.java +++ b/src/altk/comm/engine/XMLDOMBroadcast.java @@ -2,9 +2,6 @@ package altk.comm.engine; import java.io.IOException; import java.io.InputStream; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CodingErrorAction; import java.util.HashMap; import java.util.Map; import java.util.Vector; @@ -34,6 +31,8 @@ import altk.comm.engine.exception.InternalErrorException; import altk.comm.engine.exception.NonExistentException; import altk.comm.engine.exception.PlatformError; import altk.comm.engine.exception.PlatformException; +import altk.common.engine.util.LoggingInputStreamReader; +import altk.common.engine.util.UTF8BenevolentDecoder; /** * Abstract class extending Broadcast by providing an implementation of the decode @@ -101,12 +100,10 @@ public abstract class XMLDOMBroadcast extends Broadcast int contentLength = request.getContentLength(); CommonLogger.activity.info("Receiving " + contentLength + " bytes of data"); - // Clean content off bad UTF-8 characters. - Charset utf8Charset = Charset.forName("UTF-8"); - CharsetDecoder utf8Decoder = utf8Charset.newDecoder(); - utf8Decoder.onMalformedInput(CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE); - LoggingInputStreamReader ins = new LoggingInputStreamReader(inb, utf8Decoder); - InputSource is = new InputSource(ins); + // Convert InputStream inb into InputSource, using the UTF-8 decoder that + // cleans content off bad UTF-8 characters. + InputSource is = new InputSource(new LoggingInputStreamReader(inb, + UTF8BenevolentDecoder.getDecoder(), CommonLogger.activity)); xmlDoc = builder.parse(is); } catch (SAXException e)