Browse Source

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
tags/REL_3_15_BETA3
Javen O'Neal 8 years ago
parent
commit
dee56fc6c0

+ 4
- 0
src/java/org/apache/poi/poifs/macros/VBAMacroReader.java 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) {

+ 9
- 4
src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java 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;
}
}
}
}

Loading…
Cancel
Save