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