Added try/finally protection to ensure streams are closed. Added initial size guess for the CharBuffer

pull/1/head
Al Sutton 13 years ago
parent 4c67a964a1
commit 39898cb94a

@ -100,17 +100,21 @@ public class ooxmlParser extends AbstractParser implements Parser {
|| entryName.startsWith("xl/worksheets/sheet")) { || entryName.startsWith("xl/worksheets/sheet")) {
// create a writer for output // create a writer for output
writer = new CharBuffer(); writer = new CharBuffer((int)zipEntry.getSize());
try {
// extract data // extract data
final InputStream zipFileEntryStream = zipFile.getInputStream(zipEntry); final InputStream zipFileEntryStream = zipFile.getInputStream(zipEntry);
final SAXParser saxParser = saxParserFactory.newSAXParser(); try {
saxParser.parse(zipFileEntryStream, new ODContentHandler(writer)); final SAXParser saxParser = saxParserFactory.newSAXParser();
saxParser.parse(zipFileEntryStream, new ODContentHandler(writer));
// close readers and writers
zipFileEntryStream.close(); // close readers and writers
writer.close(); } finally {
zipFileEntryStream.close();
}
} finally {
writer.close();
}
} else if (entryName.equals("docProps/core.xml")) { } else if (entryName.equals("docProps/core.xml")) {
// meta.xml contains metadata about the document // meta.xml contains metadata about the document
final InputStream zipFileEntryStream = zipFile.getInputStream(zipEntry); final InputStream zipFileEntryStream = zipFile.getInputStream(zipEntry);

Loading…
Cancel
Save