mirror of https://github.com/apache/poi.git
Add disabled test for bug #44898, and slightly improve a few poifs related error messages
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@653945 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9d0ca2d573
commit
bc00daac89
|
@ -102,7 +102,8 @@ class BlockListImpl
|
|||
catch (ArrayIndexOutOfBoundsException ignored)
|
||||
{
|
||||
throw new IOException("Cannot remove block[ " + index
|
||||
+ " ]; out of range");
|
||||
+ " ]; out of range[ 0 - " +
|
||||
(_blocks.length-1) + " ]");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -81,8 +81,9 @@ public class RawDataBlock
|
|||
log.log(POILogger.ERROR,
|
||||
"Unable to read entire block; " + count
|
||||
+ type + " read before EOF; expected "
|
||||
+ blockSize + " bytes. Your document"
|
||||
+ " has probably been truncated!"
|
||||
+ blockSize + " bytes. Your document "
|
||||
+ "was either written by software that "
|
||||
+ "ignores the spec, or has been truncated!"
|
||||
);
|
||||
}
|
||||
else {
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -17,6 +17,9 @@
|
|||
|
||||
package org.apache.poi.poifs.filesystem;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
|
@ -115,6 +118,40 @@ public final class TestPOIFSFileSystem extends TestCase {
|
|||
assertTrue("input stream was not closed", testIS.isClosed()); // but still should close
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for bug # 48898 - problem opening an OLE2
|
||||
* file where the last block is short (i.e. not a full
|
||||
* multiple of 512 bytes)
|
||||
*
|
||||
* As yet, this problem remains. One school of thought is
|
||||
* not not issue an EOF when we discover the last block
|
||||
* is short, but this seems a bit wrong.
|
||||
* The other is to fix the handling of the last block in
|
||||
* POIFS, since it seems to be slight wrong
|
||||
*/
|
||||
public void DISABLEDtestShortLastBlock() throws Exception {
|
||||
String[] files = new String[] {
|
||||
"ShortLastBlock.qwp", "ShortLastBlock.wps"
|
||||
};
|
||||
String pdirname = System.getProperty("POIFS.testdata.path");
|
||||
|
||||
for(int i=0; i<files.length; i++) {
|
||||
File f = new File(pdirname, files[i]);
|
||||
assertTrue(f.exists());
|
||||
|
||||
// Open the file up
|
||||
POIFSFileSystem fs = new POIFSFileSystem(
|
||||
new FileInputStream(f)
|
||||
);
|
||||
|
||||
// Write it into a temp output array
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
fs.writeFilesystem(baos);
|
||||
|
||||
// Check sizes
|
||||
}
|
||||
}
|
||||
|
||||
private static InputStream openSampleStream(String sampleFileName) {
|
||||
return HSSFTestDataSamples.openSampleFileStream(sampleFileName);
|
||||
|
|
Loading…
Reference in New Issue