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

Reply via email to