bug 59858: describe why VBA macro reading failed

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1752778 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2016-07-15 06:12:37 +00:00
parent bb8f614a90
commit 75f5d3afc5
2 changed files with 13 additions and 4 deletions

View File

@ -218,6 +218,10 @@ public class VBAMacroReader implements Closeable {
modules.put(name, module);
module.read(dis);
} else {
if (module.offset == null) {
//This should not happen. bug 59858
throw new IOException("Module offset for '" + name + "' was never read.");
}
// we know the offset already, so decompress immediately on-the-fly
long skippedBytes = dis.skip(module.offset);
if (skippedBytes != module.offset) {

View File

@ -269,10 +269,15 @@ public class TestVBAMacroReader {
try {
fromFile(POIDataSamples.getSpreadSheetInstance(), "59858.xls");
fail("This test passes now. Please update the unit test and bug 59858.");
} catch (NullPointerException e) {
e.printStackTrace();
// NPE when reading module.offset in VBAMacroReader.readMacros (approx line 258)
assumeTrue("This test currently fails with an NPE. See stdout.", false);
} catch (IOException e) {
if (e.getMessage().matches("Module offset for '.+' was never read.")) {
//e.printStackTrace();
// NPE when reading module.offset in VBAMacroReader.readMacros (approx line 258)
assumeTrue("This test currently fails. See stdout.", false);
} else {
// something unexpected failed
throw e;
}
}
}
}