You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2008/05/08 05:44:59 UTC

svn commit: r654403 - in /cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src: changes/changes.xml main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java

Author: joerg
Date: Wed May  7 20:44:59 2008
New Revision: 654403

URL: http://svn.apache.org/viewvc?rev=654403&view=rev
Log:
COCOON-2063: Fix encoding issue in NekoHTMLTransformer (http://marc.info/?l=xml-cocoon-dev&m=120905050708311&w=4)

Modified:
    cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/changes/changes.xml
    cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java

Modified: cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/changes/changes.xml?rev=654403&r1=654402&r2=654403&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/changes/changes.xml (original)
+++ cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/changes/changes.xml Wed May  7 20:44:59 2008
@@ -24,8 +24,12 @@
     +-->
 <document>
   <body>
-    <release version="1.0.0-RC1" date="2007-??-??" description="unreleased">  
-      
+    <release version="1.0.1" date="TBD" description="unreleased">
+      <action dev="vgritsenko" type="fix" fixes-bug="COCOON-2063">
+        Fix encoding issue in NekoHTMLTransformer.
+      </action>
+    </release>     
+    <release version="1.0.0" date="2008-03-25" description="released">
     </release>     
     <release version="1.0.0-M1" date="2007-03-02" description="released">    
       <action dev="crossley" type="add" fixes-bug="COCOON-1206" due-to="Miles Elam" due-to-email="miles@geekspeak.org">

Modified: cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java?rev=654403&r1=654402&r2=654403&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java (original)
+++ cocoon/trunk/blocks/cocoon-html/cocoon-html-impl/src/main/java/org/apache/cocoon/transformation/NekoHTMLTransformer.java Wed May  7 20:44:59 2008
@@ -16,8 +16,9 @@
  */
 package org.apache.cocoon.transformation;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
@@ -30,8 +31,8 @@
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.components.NekoHtmlSaxParser;
 import org.apache.cocoon.environment.SourceResolver;
-import org.apache.cocoon.xml.dom.DOMBuilder;
 import org.apache.cocoon.xml.IncludeXMLConsumer;
+import org.apache.cocoon.xml.dom.DOMBuilder;
 import org.apache.excalibur.source.Source;
 import org.w3c.dom.Document;
 import org.xml.sax.Attributes;
@@ -96,7 +97,7 @@
                              Attributes attr)
     throws SAXException {
         super.startElement(uri, name, raw, attr);
-		if (this.tags.containsKey(name)) {
+        if (this.tags.containsKey(name)) {
             this.startTextRecording();
         }
     }
@@ -144,15 +145,13 @@
      * @param text the string to be tidied
      */
     private void normalize(String text) throws ProcessingException {
+        Reader reader = new StringReader(text);
         try {
             NekoHtmlSaxParser parser = new NekoHtmlSaxParser(this.properties);
 
-            ByteArrayInputStream bais =
-                new ByteArrayInputStream(text.getBytes());
-
             DOMBuilder builder = new DOMBuilder();
             parser.setContentHandler(builder);
-            parser.parse(new InputSource(bais));
+            parser.parse(new InputSource(reader));
             Document doc = builder.getDocument();
 
             IncludeXMLConsumer.includeNode(doc, this.contentHandler, this.lexicalHandler);
@@ -160,13 +159,18 @@
             throw new ProcessingException(
                 "Exception in NekoHTMLTransformer.normalize()",
                 e);
+        } finally {
+            try {
+                reader.close();
+            } catch (IOException e) {
+                throw new ProcessingException(e);
+            }
         }
     }
 
     /**
      * Setup this component, passing the tag names to be tidied.
      */
-
     public void setup(SourceResolver resolver,
                       Map objectModel,
                       String src,
@@ -175,7 +179,7 @@
         super.setup(resolver, objectModel, src, par);
         String tagsParam = par.getParameter("tags", "");        
         if (getLogger().isDebugEnabled()) {
-        	getLogger().debug("tags: " + tagsParam);
+            getLogger().debug("tags: " + tagsParam);
         }        
         this.tags = new HashMap();
         StringTokenizer tokenizer = new StringTokenizer(tagsParam, ",");