Author: vsiveton
Date: Mon Aug 24 12:03:59 2009
New Revision: 807167
URL: http://svn.apache.org/viewvc?rev=807167&view=rev
Log:
DOXIA-364: Guarantee the state of sinks and parsers impl
o impl init() method from r807164
o use final fields
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java?rev=807167&r1=807166&r2=807167&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
Mon Aug 24 12:03:59 2009
@@ -59,26 +59,14 @@
*/
public ConfluenceParser()
{
- BlockParser headingParser = new SectionBlockParser();
- BlockParser figureParser = new FigureBlockParser();
- BlockParser verbatimParser = new VerbatimBlockParser();
- BlockParser definitionParser = new DefinitionListBlockParser();
- BlockParser horizontalRuleParser = new HorizontalRuleBlockParser();
- BlockParser listParser = new ListBlockParser();
- BlockParser tableParser = new TableBlockParser();
-
- BlockParser[] subparsers =
- new BlockParser[] { headingParser, figureParser, listParser,
tableParser, verbatimParser };
- BlockParser paragraphParser = new ParagraphBlockParser( subparsers );
-
- parsers =
- new BlockParser[] { headingParser, figureParser, verbatimParser,
definitionParser, horizontalRuleParser,
- listParser, tableParser, paragraphParser };
+ init();
}
private List parse( ByLineSource source )
throws ParseException
{
+ init();
+
List blocks = new ArrayList();
String line;
@@ -127,7 +115,7 @@
try
{
- blocks = parse( src );
+ blocks = parse( src );
}
catch ( Exception e )
{
@@ -149,5 +137,32 @@
}
sink.body_();
+ sink.flush();
+ sink.close();
+
+ setSecondParsing( false );
+ init();
+ }
+
+ /** {...@inheritdoc} */
+ protected void init()
+ {
+ super.init();
+
+ BlockParser headingParser = new SectionBlockParser();
+ BlockParser figureParser = new FigureBlockParser();
+ BlockParser verbatimParser = new VerbatimBlockParser();
+ BlockParser definitionParser = new DefinitionListBlockParser();
+ BlockParser horizontalRuleParser = new HorizontalRuleBlockParser();
+ BlockParser listParser = new ListBlockParser();
+ BlockParser tableParser = new TableBlockParser();
+
+ BlockParser[] subparsers =
+ new BlockParser[] { headingParser, figureParser, listParser,
tableParser, verbatimParser };
+ BlockParser paragraphParser = new ParagraphBlockParser( subparsers );
+
+ this.parsers =
+ new BlockParser[] { headingParser, figureParser, verbatimParser,
definitionParser, horizontalRuleParser,
+ listParser, tableParser, paragraphParser };
}
}
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java?rev=807167&r1=807166&r2=807167&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
Mon Aug 24 12:03:59 2009
@@ -45,7 +45,7 @@
implements ConfluenceMarkup
{
/** The writer to use. */
- private PrintWriter out;
+ private final PrintWriter out;
/** The writer to use. */
private StringWriter writer;
@@ -56,7 +56,7 @@
private int levelList = 0;
/** listStyles. */
- private Stack listStyles;
+ private final Stack listStyles;
/** An indication on if we're in verbatim box mode. */
private boolean verbatimBoxedFlag;
@@ -76,8 +76,9 @@
protected ConfluenceSink( Writer writer )
{
this.out = new PrintWriter( writer );
- this.writer = new StringWriter();
this.listStyles = new Stack();
+
+ init();
}
/** {...@inheritdoc} */
@@ -175,6 +176,8 @@
{
out.write( writer.toString() );
out.close();
+
+ init();
}
/**
@@ -379,6 +382,8 @@
/** {...@inheritdoc} */
public void head()
{
+ init();
+
headFlag = true;
}
@@ -1085,6 +1090,20 @@
write( escapeHTML( text ) );
}
+ /** {...@inheritdoc} */
+ protected void init()
+ {
+ super.init();
+
+ this.writer = new StringWriter();
+ this.headFlag = false;
+ this.levelList = 0;
+ this.listStyles.clear();
+ this.verbatimBoxedFlag = false;
+ this.tableHeaderFlag = false;
+ this.linkName = null;
+ }
+
/**
* Forward to HtmlTools.escapeHTML( text ).
*