[ 
https://issues.apache.org/jira/browse/DOXIATOOLS-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Osipov closed DOXIATOOLS-30.
------------------------------------
    Resolution: Auto Closed

This issue has been auto closed because it has been inactive for a long period 
of time. If you think this issue still applies, retest your problem with the 
most recent version of Maven and the affected component, reopen and post your 
results.

> An incomplete fix for the resource leak bugs in XdocBookRenderer.java
> ---------------------------------------------------------------------
>
>                 Key: DOXIATOOLS-30
>                 URL: https://issues.apache.org/jira/browse/DOXIATOOLS-30
>             Project: Maven Doxia Tools
>          Issue Type: Bug
>          Components: Doxia Book Renderer
>            Reporter: Guangtai Liang
>            Priority: Critical
>
> The fix revision 740164 was aimed to remove resource leak bugs on the Writer 
> object "writer" (created in line 177) in the method "writeBookIndex"of the 
> file "/maven/doxia/doxia/trunk/doxia-
> book/src/main/java/org/apache/maven/doxia/book/services/renderer/XdocBookRenderer.java"
>  , but it is incomplete. 
> There are some problems: 
> 1. when the statements at lines 177 throw some exception, "writer" will be 
> leaked. 
> The best way to close such resource objects is putting such close operations 
> for all resource objects in the finaly block of a try-catch-finally structure 
> and then putting all other code in a try block.
> The problem still exists in the head revision (when the statements at line 
> 171 throws some exception, "writer" will be leaked). The buggy code is copied 
> as bellows:
> private void writeBookIndex( File index, BookModel book, BookContext context )
>         throws IOException
>     {
> 169        Writer writer = WriterFactory.newXmlWriter( index );
> 171        XdocSink sink = new IndexXdocBookSink( writer, 
> context.getIndex().getFirstEntry(), i18n, 
> context.getLocale() );
>         try
>         {
>             ......
>             sink.body_();
>         }
>         finally
>         {
> 211            sink.flush();
> 213            sink.close();
> 215            IOUtil.close( writer );
>         }
>     }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to