[
https://jira.codehaus.org/browse/DOXIATOOLS-30?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dennis Lundberg updated DOXIATOOLS-30:
--------------------------------------
Component/s: Book
> An incomplete fix for the resource leak bugs in XdocBookRenderer.java
> ---------------------------------------------------------------------
>
> Key: DOXIATOOLS-30
> URL: https://jira.codehaus.org/browse/DOXIATOOLS-30
> Project: Maven Doxia Tools
> Issue Type: Bug
> Components: Book
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira