]> source.dussan.org Git - poi.git/commitdiff
Fix for bug 45380 - added return keyword in ArrayPtg.toFormulaString()
authorJosh Micich <josh@apache.org>
Sun, 13 Jul 2008 23:23:13 +0000 (23:23 +0000)
committerJosh Micich <josh@apache.org>
Sun, 13 Jul 2008 23:23:13 +0000 (23:23 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@676457 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/changes.xml
src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java

index be530cb5c22293e6e1ad75ca21c85253012c93f5..15f1a29d5e2cbc01f8631e6b0359246fb1a15365 100644 (file)
@@ -37,6 +37,7 @@
 
                <!-- Don't forget to update status.xml too! -->
         <release version="3.1.1-alpha1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">45380 - Missing return keyword in ArrayPtg.toFormulaString()</action>
            <action dev="POI-DEVELOPERS" type="add">44958 - Record level support for Data Tables. (No formula parser support though)</action>
            <action dev="POI-DEVELOPERS" type="add">35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version</action>
            <action dev="POI-DEVELOPERS" type="add">Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another</action>
index 2ec98011f6f02833157e3c4ce0c1ec502786fe96..b77bcae69f4af766a248849e9e9ebf29787559c0 100644 (file)
@@ -34,6 +34,7 @@
        <!-- Don't forget to update changes.xml too! -->
     <changes>
         <release version="3.1.1-alpha1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">45380 - Missing return keyword in ArrayPtg.toFormulaString()</action>
            <action dev="POI-DEVELOPERS" type="add">44958 - Record level support for Data Tables. (No formula parser support though)</action>
            <action dev="POI-DEVELOPERS" type="add">35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version</action>
            <action dev="POI-DEVELOPERS" type="add">Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another</action>
index 43e3d04e3ea9cfa0b98be11b59a3769b7a4b0bbc..97fad47b9ef22ab400294cef61175cd58393f4fc 100644 (file)
@@ -176,7 +176,7 @@ public final class ArrayPtg extends Ptg {
                        return ((Double)o).toString();
                }
                if (o instanceof Boolean) {
-                       ((Boolean)o).toString();
+                       return ((Boolean)o).booleanValue() ? "TRUE" : "FALSE";
                }
                if (o instanceof ErrorConstant) {
                        return ((ErrorConstant)o).getText();
index 2ba27e963b34a15bd8a4769809e4ea48d73a200b..14bcde38b3f8d2b08773e899f29dbd1a3a60f3df 100644 (file)
@@ -102,7 +102,7 @@ public final class TestArrayPtg extends TestCase {
        public void testElementOrderingInSpreadsheet() {
                HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("ex42564-elementOrder.xls");
 
-               // The formula has an array with 3 rows and 5 column 
+               // The formula has an array with 3 rows and 5 columns 
                String formula = wb.getSheetAt(0).getRow(0).getCell((short)0).getCellFormula();
                // TODO - These number literals should not have '.0'. Excel has different number rendering rules
 
@@ -111,4 +111,21 @@ public final class TestArrayPtg extends TestCase {
                }
                assertEquals("SUM({1.0,2.0,3.0;4.0,5.0,6.0;7.0,8.0,9.0;10.0,11.0,12.0;13.0,14.0,15.0})", formula);
        }
+
+       public void testToFormulaString() {
+               ArrayPtg ptg = new ArrayPtg(new TestcaseRecordInputStream(ArrayPtg.sid, ENCODED_PTG_DATA));
+               
+               ptg.readTokenValues(new TestcaseRecordInputStream(0, ENCODED_CONSTANT_DATA));
+               
+               String actualFormula;
+               try {
+                       actualFormula = ptg.toFormulaString(null);
+               } catch (IllegalArgumentException e) {
+                       if (e.getMessage().equals("Unexpected constant class (java.lang.Boolean)")) {
+                               throw new AssertionFailedError("Identified bug 45380");
+                       }
+                       throw e;
+               }
+               assertEquals("{TRUE,\"ABCD\";\"E\",0.0;FALSE,\"FG\"}", actualFormula);
+       }
 }