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.
*