Unit test for #58731 - not reproduced, and some javadocs

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1720411 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2015-12-16 18:15:31 +00:00
parent 7b4c17b70c
commit 1fbfc70cca
4 changed files with 41 additions and 0 deletions

View File

@ -19,6 +19,7 @@ package org.apache.poi;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -301,6 +302,10 @@ public abstract class POIDocument {
* Writes the document out to the specified output stream. The * Writes the document out to the specified output stream. The
* stream is not closed as part of this operation. * stream is not closed as part of this operation.
* *
* Note - if the Document was opened from a {@link File} rather
* than an {@link InputStream}, you <b>must</b> write out to
* a different file, overwriting via an OutputStream isn't possible.
*
* @param out The stream to write to. * @param out The stream to write to.
* *
* @throws IOException thrown on errors writing to the stream * @throws IOException thrown on errors writing to the stream

View File

@ -17,6 +17,7 @@
package org.apache.poi; package org.apache.poi;
import java.io.Closeable; import java.io.Closeable;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -196,6 +197,10 @@ public abstract class POIXMLDocument extends POIXMLDocumentPart implements Close
/** /**
* Write out this document to an Outputstream. * Write out this document to an Outputstream.
* *
* Note - if the Document was opened from a {@link File} rather
* than an {@link InputStream}, you <b>must</b> write out to
* a different file, overwriting via an OutputStream isn't possible.
*
* @param stream - the java OutputStream you wish to write the file to * @param stream - the java OutputStream you wish to write the file to
* *
* @exception IOException if anything can't be written. * @exception IOException if anything can't be written.

View File

@ -2850,4 +2850,35 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
assertNotNull(wbBack); assertNotNull(wbBack);
wbBack.close(); wbBack.close();
} }
public void test58731() throws Exception {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("58731.xlsx");
Sheet sheet = wb.createSheet("Java Books");
Object[][] bookData = {
{"Head First Java", "Kathy Serria", 79},
{"Effective Java", "Joshua Bloch", 36},
{"Clean Code", "Robert martin", 42},
{"Thinking in Java", "Bruce Eckel", 35},
};
int rowCount = 0;
for (Object[] aBook : bookData) {
Row row = sheet.createRow(++rowCount);
int columnCount = 0;
for (Object field : aBook) {
Cell cell = row.createCell(++columnCount);
if (field instanceof String) {
cell.setCellValue((String) field);
} else if (field instanceof Integer) {
cell.setCellValue((Integer) field);
}
}
}
Workbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb);
sheet = wb.getSheet("Java Books");
assertEquals(bookData[0][0], sheet.getRow(0).getCell(0).getStringCellValue());
}
} }

Binary file not shown.