Author: vsiveton
Date: Mon Aug 24 12:27:26 2009
New Revision: 807182

URL: http://svn.apache.org/viewvc?rev=807182&view=rev
Log:
DOXIA-364:  Guarantee the state of sinks and parsers impl

o impl init() method from r807164

Modified:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=807182&r1=807181&r2=807182&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
 Mon Aug 24 12:27:26 2009
@@ -76,6 +76,9 @@
     public void parse( Reader source, Sink sink )
         throws ParseException
     {
+        this.sourceContent = null;
+        init();
+
         try
         {
             StringWriter contentWriter = new StringWriter();
@@ -96,9 +99,17 @@
         // leave this at default (false) until everything is properly 
implemented, see DOXIA-226
         //setIgnorableWhitespace( true );
 
-        super.parse( tmp, sink );
+        try
+        {
+            super.parse( tmp, sink );
+        }
+        finally
+        {
+            this.sourceContent = null;
 
-        this.hasTitle = false;
+            setSecondParsing( false );
+            init();
+        }
     }
 
     /** {...@inheritdoc} */
@@ -311,6 +322,18 @@
         setSectionLevel( newLevel );
     }
 
+    /** {...@inheritdoc} */
+    protected void init()
+    {
+        super.init();
+
+        this.isEmptyElement = false;
+        this.macroName = null;
+        this.macroParameters = null;
+        this.inHead = false;
+        this.hasTitle = false;
+    }
+
     /**
      * Close open h4, h5, h6 sections.
      */

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java?rev=807182&r1=807181&r2=807182&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
 Mon Aug 24 12:27:26 2009
@@ -108,14 +108,11 @@
     // Public protected methods
     // ----------------------------------------------------------------------
 
-    /**
-     * {...@inheritdoc}
-     *
-     * Reset all variables.
-     */
-    protected void resetState()
+    /** {...@inheritdoc} */
+    protected void init()
     {
-        super.resetState();
+        super.init();
+
         boxedFlag = false;
     }
 
@@ -135,7 +132,7 @@
      */
     public void head( SinkEventAttributes attributes )
     {
-        resetState();
+        init();
 
         setHeadFlag( true );
 
@@ -266,7 +263,7 @@
 
         flush();
 
-        resetState();
+        init();
     }
 
     // ----------------------------------------------------------------------
@@ -491,6 +488,13 @@
         setCellCount( 0 );
     }
 
+    public void close()
+    {
+        super.close();
+
+        init();
+    }
+
     /**
      * Adds a link with an optional target.
      *


Reply via email to