Author: tallison Date: Tue Oct 18 18:24:39 2016 New Revision: 1765490 URL: http://svn.apache.org/viewvc?rev=1765490&view=rev Log: BUG 60273 -- Use codepageutil to get correct charset in VBAMacroReader
Added: poi/trunk/test-data/spreadsheet/60273.xls (with props) Modified: poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java poi/trunk/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java Modified: poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java?rev=1765490&r1=1765489&r2=1765490&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java (original) +++ poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java Tue Oct 18 18:24:39 2016 @@ -41,6 +41,7 @@ import org.apache.poi.poifs.filesystem.D import org.apache.poi.poifs.filesystem.Entry; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.OfficeXmlFileException; +import org.apache.poi.util.CodePageUtil; import org.apache.poi.util.HexDump; import org.apache.poi.util.IOUtils; import org.apache.poi.util.RLEDecompressingInputStream; @@ -305,7 +306,7 @@ public class VBAMacroReader implements C break; case PROJECTCODEPAGE: int codepage = in.readShort(); - modules.charset = Charset.forName("Cp" + codepage); + modules.charset = Charset.forName(CodePageUtil.codepageToEncoding(codepage, true)); break; case STREAMNAME: streamName = readString(in, recordLength, modules.charset); Modified: poi/trunk/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java?rev=1765490&r1=1765489&r2=1765490&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java (original) +++ poi/trunk/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java Tue Oct 18 18:24:39 2016 @@ -272,4 +272,14 @@ public class TestVBAMacroReader { assertNotNull(macros.get("NewMacros")); assertContains(macros.get("NewMacros"), "' dirty"); } + + @Test + public void bug60273() throws IOException { + //test file derives from govdocs1 147240.xls + File f = POIDataSamples.getSpreadSheetInstance().getFile("60273.xls"); + VBAMacroReader r = new VBAMacroReader(f); + Map<String, String> macros = r.readMacros(); + assertNotNull(macros.get("Module1")); + assertContains(macros.get("Module1"), "9/8/2004"); + } } Added: poi/trunk/test-data/spreadsheet/60273.xls URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/60273.xls?rev=1765490&view=auto ============================================================================== Binary file - no diff available. Propchange: poi/trunk/test-data/spreadsheet/60273.xls ------------------------------------------------------------------------------ svn:mime-type = application/vnd.ms-excel --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org