avik        2004/01/01 11:08:43

  Modified:    src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
                        StringRecord.java
               src/testcases/org/apache/poi/hssf/usermodel Tag:
                        REL_2_BRANCH TestBugs.java
  Added:       src/testcases/org/apache/poi/hssf/data Tag: REL_2_BRANCH
                        25695.xls
  Log:
  fix for bug 25695
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.5.2.2   +1 -1      
jakarta-poi/src/java/org/apache/poi/hssf/record/StringRecord.java
  
  Index: StringRecord.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/StringRecord.java,v
  retrieving revision 1.5.2.1
  retrieving revision 1.5.2.2
  diff -u -r1.5.2.1 -r1.5.2.2
  --- StringRecord.java 23 Sep 2003 00:35:16 -0000      1.5.2.1
  +++ StringRecord.java 1 Jan 2004 19:08:42 -0000       1.5.2.2
  @@ -130,7 +130,7 @@
           field_2_unicode_flag            = data[ 2 + offset ];
           if (isUnCompressedUnicode())
           {
  -            field_3_string = StringUtil.getFromUnicode(data, 3 + offset, 
field_1_string_length );
  +            field_3_string = StringUtil.getFromUnicodeHigh(data, 3 + offset, 
field_1_string_length );
           }
           else
           {
  
  
  
  No                   revision
  No                   revision
  1.1.2.1   +17 -0     
jakarta-poi/src/testcases/org/apache/poi/hssf/data/Attic/25695.xls
  
        <<Binary file>>
  
  
  No                   revision
  No                   revision
  1.1.2.16  +56 -0     
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
  
  Index: TestBugs.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java,v
  retrieving revision 1.1.2.15
  retrieving revision 1.1.2.16
  diff -u -r1.1.2.15 -r1.1.2.16
  --- TestBugs.java     17 Nov 2003 21:10:35 -0000      1.1.2.15
  +++ TestBugs.java     1 Jan 2004 19:08:43 -0000       1.1.2.16
  @@ -438,6 +438,62 @@
          //make sure we dont exception
          
       }
  +    
  +    /*Tests read and write of Unicode strings in formula results
  +     * bug and testcase submitted by Sompop Kumnoonsate
  +     * The file contains THAI unicode characters. 
  +     */
  +     public void testUnicodeStringFormulaRead() throws Exception {
  +             
  +             String filename = System.getProperty("HSSF.testdata.path");
  +             filename=filename+"/25695.xls";
  +             FileInputStream in = new FileInputStream(filename);
  +             HSSFWorkbook w;
  +             w = new HSSFWorkbook(in);
  +             in.close();
  +
  +             HSSFCell a1 = w.getSheetAt(0).getRow(0).getCell((short) 0);
  +             HSSFCell a2 = w.getSheetAt(0).getRow(0).getCell((short) 1);
  +             HSSFCell b1 = w.getSheetAt(0).getRow(1).getCell((short) 0);
  +             HSSFCell b2 = w.getSheetAt(0).getRow(1).getCell((short) 1);
  +             HSSFCell c1 = w.getSheetAt(0).getRow(2).getCell((short) 0);
  +             HSSFCell c2 = w.getSheetAt(0).getRow(2).getCell((short) 1);
  +             HSSFCell d1 = w.getSheetAt(0).getRow(3).getCell((short) 0);
  +             HSSFCell d2 = w.getSheetAt(0).getRow(3).getCell((short) 1);
  +
  +             assertEquals("String Cell value", a1.getStringCellValue(), 
a2.getStringCellValue());
  +             assertEquals("String Cell value", b1.getStringCellValue(), 
b2.getStringCellValue());
  +             assertEquals("String Cell value", c1.getStringCellValue(), 
c2.getStringCellValue());
  +             assertEquals("String Cell value", d1.getStringCellValue(), 
d2.getStringCellValue());
  +
  +             File xls = File.createTempFile("testFormulaUnicode", ".xls");
  +             FileOutputStream out = new FileOutputStream(xls);
  +             w.write(out);
  +             out.close();
  +             in = new FileInputStream(xls);
  +
  +             HSSFWorkbook rw = new HSSFWorkbook(in);
  +             in.close();
  +
  +             HSSFCell ra1 = rw.getSheetAt(0).getRow(0).getCell((short) 0);
  +             HSSFCell ra2 = rw.getSheetAt(0).getRow(0).getCell((short) 1);
  +             HSSFCell rb1 = rw.getSheetAt(0).getRow(1).getCell((short) 0);
  +             HSSFCell rb2 = rw.getSheetAt(0).getRow(1).getCell((short) 1);
  +             HSSFCell rc1 = rw.getSheetAt(0).getRow(2).getCell((short) 0);
  +             HSSFCell rc2 = rw.getSheetAt(0).getRow(2).getCell((short) 1);
  +             HSSFCell rd1 = rw.getSheetAt(0).getRow(3).getCell((short) 0);
  +             HSSFCell rd2 = rw.getSheetAt(0).getRow(3).getCell((short) 1);
  +
  +             assertEquals("Re-Written String Cell value", a1.getStringCellValue(), 
ra1.getStringCellValue());
  +             assertEquals("Re-Written String Cell value", b1.getStringCellValue(), 
rb1.getStringCellValue());
  +             assertEquals("Re-Written String Cell value", c1.getStringCellValue(), 
rc1.getStringCellValue());
  +             assertEquals("Re-Written String Cell value", d1.getStringCellValue(), 
rd1.getStringCellValue());
  +             assertEquals("Re-Written Formula String Cell value", 
a1.getStringCellValue(), ra2.getStringCellValue());
  +             assertEquals("Re-Written Formula String Cell value", 
b1.getStringCellValue(), rb2.getStringCellValue());
  +             assertEquals("Re-Written Formula String Cell value", 
c1.getStringCellValue(), rc2.getStringCellValue());
  +             assertEquals("Re-Written Formula String Cell value", 
d1.getStringCellValue(), rd2.getStringCellValue());
  +
  +     }
   }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to