소스 검색

#59724 Provide Closeable on all OLE2-based POIDocument types

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1749213 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_15_BETA2
Nick Burch 8 년 전
부모
커밋
fb80ba4949
2개의 변경된 파일23개의 추가작업 그리고 9개의 파일을 삭제
  1. 18
    1
      src/java/org/apache/poi/POIDocument.java
  2. 5
    8
      src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java

+ 18
- 1
src/java/org/apache/poi/POIDocument.java 파일 보기

@@ -19,6 +19,7 @@ package org.apache.poi;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -45,7 +46,7 @@ import org.apache.poi.util.POILogger;
* Document classes.
* Currently, this relates to Document Information Properties
*/
public abstract class POIDocument {
public abstract class POIDocument implements Closeable {
/** Holds metadata on our document */
private SummaryInformation sInf;
/** Holds further metadata on our document */
@@ -319,6 +320,22 @@ public abstract class POIDocument {
*/
public abstract void write(OutputStream out) throws IOException;

/**
* Closes the underlying {@link NPOIFSFileSystem} from which
* the document was read, if any. Has no effect on documents
* opened from an InputStream, or newly created ones.
* <p>Once {@link #close()} has been called, no further operations
* should be called on the document.
*/
public void close() throws IOException {
if (directory != null) {
if (directory.getNFileSystem() != null) {
directory.getNFileSystem().close();
directory = null;
}
}
}

@Internal
public DirectoryNode getDirectory() {
return directory;

+ 5
- 8
src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java 파일 보기

@@ -1276,16 +1276,13 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
* Closes the underlying {@link NPOIFSFileSystem} from which
* the Workbook was read, if any. Has no effect on Workbooks
* opened from an InputStream, or newly created ones.
* <p>Once {@link #close()} has been called, no further
* operations, updates or reads should be performed on the
* Workbook.
*/
@Override
public void close() throws IOException
{
if (directory != null) {
if (directory.getNFileSystem() != null) {
directory.getNFileSystem().close();
directory = null;
}
}
public void close() throws IOException {
super.close();
}

/**

Loading…
취소
저장