Author: vsiveton
Date: Tue Oct 28 04:23:39 2008
New Revision: 708527

URL: http://svn.apache.org/viewvc?rev=708527&view=rev
Log:
DOXIA-105: review error handling

o patch applied 
o updated Exception's messages
o be sure that reader and sink will be closed before processing 
generateDocument()

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java?rev=708527&r1=708526&r2=708527&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
 Tue Oct 28 04:23:39 2008
@@ -327,9 +327,9 @@
 
         File doc = new File( renderingContext.getBasedir(), 
renderingContext.getInputName() );
 
+        Reader reader = null;
         try
         {
-            Reader reader = null;
             Parser parser = doxia.getParser( renderingContext.getParserId() );
 
             // TODO: DOXIA-111: the filter used here must be checked generally.
@@ -377,27 +377,29 @@
             }
             sink.enableLogging( new PlexusLoggerWrapper( getLogger() ) );
             doxia.parse( reader, renderingContext.getParserId(), sink );
-
-            generateDocument( writer, sink, context );
         }
         catch ( ParserNotFoundException e )
         {
-            throw new RendererException( "Error getting a parser for " + doc + 
": " + e.getMessage() );
+            throw new RendererException( "Error getting a parser for '" + doc 
+ "': " + e.getMessage(), e );
         }
         catch ( ParseException e )
         {
-            getLogger().error( "Error parsing " + doc + ": line [" + 
e.getLineNumber() + "] " + e.getMessage(), e );
+            throw new RendererException( "Error parsing '" + doc + "': line [" 
+ e.getLineNumber() + "] " + e.getMessage(), e );
         }
         catch ( IOException e )
         {
-            getLogger().error( "Error parsing " + doc + " to detect encoding", 
e );
+            throw new RendererException( "IOException when processing '" + doc 
+ "'", e );
         }
         finally
         {
             sink.flush();
 
             sink.close();
+
+            IOUtil.close( reader );
         }
+
+        generateDocument( writer, sink, context );
     }
 
     private Context createContext( SiteRendererSink sink,


Reply via email to