[ 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