You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ps...@apache.org on 2007/11/03 06:16:20 UTC

svn commit: r591552 - /logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java

Author: psmith
Date: Fri Nov  2 22:16:19 2007
New Revision: 591552

URL: http://svn.apache.org/viewvc?rev=591552&view=rev
Log:
Bug 43736 applied patch provided by Curt with extraction to a constant to indicate that
XMLDecoder only deals with UTF-8 encoded log files.

Previously the system default encoding was being used to read in the XML file, even though
a header DOCTYPE pre-amble was added indicating the file was in UTF-8 encoding.

This is pretty much a stop gap fix for the time being.  At the moment there is no way in
Chainsaw to specify the encoding of the file about to be opened.

Modified:
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java?rev=591552&r1=591551&r2=591552&view=diff
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/XMLDecoder.java Fri Nov  2 22:16:19 2007
@@ -37,9 +37,9 @@
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.log4j.spi.Decoder;
+import org.apache.log4j.spi.LocationInfo;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.ThrowableInformation;
-import org.apache.log4j.spi.LocationInfo;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -56,17 +56,23 @@
  * NOTE:  Only a single LoggingEvent is returned from the decode method
  * even though the DTD supports multiple events nested in an eventSet.
  *
- *
+ * NOTE: This class has been created on the assumption that all XML log files
+ * are encoding in UTF-8 encoding. There is no current support for any other 
+ * encoding format at this time.
+ * 
  * @author Scott Deboy (sdeboy@apache.org)
  * @author Paul Smith (psmith@apache.org)
  *
  */
 public class XMLDecoder implements Decoder {
+    
+  private static final String ENCODING = "UTF-8";
+    
     /**
      * Document prolog.
      */
   private static final String BEGINPART =
-    "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
+    "<?xml version=\"1.0\" encoding=\"" + ENCODING + "\" ?>"
     + "<!DOCTYPE log4j:eventSet SYSTEM \"http://localhost/log4j.dtd\">"
     + "<log4j:eventSet version=\"1.2\" "
     + "xmlns:log4j=\"http://jakarta.apache.org/log4j/\">";
@@ -183,9 +189,9 @@
     if (owner != null) {
       reader = new LineNumberReader(new InputStreamReader(
               new ProgressMonitorInputStream(owner,
-                      "Loading " + url , url.openStream())));
+                      "Loading " + url , url.openStream()), ENCODING));
     } else {
-      reader = new LineNumberReader(new InputStreamReader(url.openStream()));
+      reader = new LineNumberReader(new InputStreamReader(url.openStream(), ENCODING));
     }
 
     Vector v = new Vector();



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org