avik        2005/05/31 12:03:19

  Modified:    src/java/org/apache/poi/hssf/model Sheet.java
               src/java/org/apache/poi/hssf/record/aggregates
                        FormulaRecordAggregate.java
               src/testcases/org/apache/poi/hssf/usermodel
                        TestHSSFSheet.java TestUnfixedBugs.java
  Log:
  bug 35084, reported by Stefano Rocca. fixed in Sheet.java
  
  Revision  Changes    Path
  1.55      +13 -2     jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java
  
  Index: Sheet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- Sheet.java        16 May 2005 20:38:55 -0000      1.54
  +++ Sheet.java        31 May 2005 19:03:19 -0000      1.55
  @@ -340,9 +340,20 @@
             ValueRecordsAggregate vrAgg = (ValueRecordsAggregate)rec;
             for (Iterator cellIter = vrAgg.getIterator();cellIter.hasNext();) {
               Record valRec = (Record)cellIter.next();
  -            clonedRecords.add(valRec);
  +            
  +            if (valRec instanceof FormulaRecordAggregate) {
  +                FormulaRecordAggregate fmAgg = 
(FormulaRecordAggregate)valRec;
  +                Record fmAggRec = fmAgg.getFormulaRecord();
  +                if (fmAggRec != null)
  +                  clonedRecords.add(fmAggRec);
  +                fmAggRec =   fmAgg.getStringRecord();
  +                if (fmAggRec != null)
  +                  clonedRecords.add(fmAggRec);
  +              } else {
  +                clonedRecords.add(valRec);
  +              }
             }
  -        } else if (rec instanceof FormulaRecordAggregate) {
  +        } else if (rec instanceof FormulaRecordAggregate) {  //Is this 
required now??
             FormulaRecordAggregate fmAgg = (FormulaRecordAggregate)rec;
             Record fmAggRec = fmAgg.getFormulaRecord();
             if (fmAggRec != null)
  
  
  
  1.10      +0 -1      
jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java
  
  Index: FormulaRecordAggregate.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- FormulaRecordAggregate.java       23 Aug 2004 08:52:28 -0000      1.9
  +++ FormulaRecordAggregate.java       31 May 2005 19:03:19 -0000      1.10
  @@ -234,5 +234,4 @@
           if(stringRecord==null) return null;
           return stringRecord.getString();
      }
  -
   }
  
  
  
  1.25      +16 -0     
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
  
  Index: TestHSSFSheet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- TestHSSFSheet.java        7 May 2005 17:25:26 -0000       1.24
  +++ TestHSSFSheet.java        31 May 2005 19:03:19 -0000      1.25
  @@ -437,6 +437,22 @@
           assertEquals("HSSFSheet.getLeftCol()", leftcol, sheet.getLeftCol());
       }
       
  +    /** cell with formula becomes null on cloning a sheet*/
  +      public void test35084() {
  +     
  +     HSSFWorkbook wb = new HSSFWorkbook();
  +     HSSFSheet s =wb.createSheet("Sheet1");
  +     HSSFRow r = s.createRow(0);
  +     r.createCell((short)0).setCellValue(1);
  +     r.createCell((short)1).setCellFormula("A1*2");
  +     HSSFSheet s1 = wb.cloneSheet(0);
  +     r=s1.getRow(0);
  +     assertEquals("double" 
,r.getCell((short)0).getNumericCellValue(),(double)1,0); //sanity check
  +     assertNotNull(r.getCell((short)1)); 
  +     assertEquals("formula", r.getCell((short)1).getCellFormula(), "A1*2");
  +   }
  +      
  +      
        public static void main(java.lang.String[] args) {
                 junit.textui.TestRunner.run(TestHSSFSheet.class);
        }    
  
  
  
  1.4       +0 -17     
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestUnfixedBugs.java
  
  Index: TestUnfixedBugs.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestUnfixedBugs.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestUnfixedBugs.java      31 May 2005 18:41:19 -0000      1.3
  +++ TestUnfixedBugs.java      31 May 2005 19:03:19 -0000      1.4
  @@ -59,21 +59,4 @@
          assertTrue("Read book fine!" , true);
      }
        
  -      /* cell with formula becomes null on cloning a sheet*/
  -      public void test35084() {
  -     
  -     HSSFWorkbook wb = new HSSFWorkbook();
  -     HSSFSheet s =wb.createSheet("Sheet1");
  -     HSSFRow r = s.createRow(0);
  -     r.createCell((short)0).setCellValue(1);
  -     r.createCell((short)1).setCellFormula("A1*2");
  -     HSSFSheet s1 = wb.cloneSheet(0);
  -     r=s1.getRow(0);
  -     assertEquals("double" 
,r.getCell((short)0).getNumericCellValue(),(double)1,0); //sanity check, pass
  -     assertNotNull(r.getCell((short)1)); //Fails
  -     assertEquals("formula", r.getCell((short)1).getCellFormula(), "A1*2"); 
//Fails
  -     
  -     
  -     
  -    }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/

Reply via email to