You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by dm...@apache.org on 2003/05/09 14:39:08 UTC

cvs commit: jakarta-poi/src/testcases/org/apache/poi/hssf/model SheetTest.java

dmui        2003/05/09 05:39:08

  Modified:    src/java/org/apache/poi/hssf/model Sheet.java
               src/java/org/apache/poi/hssf/record/aggregates
                        RowRecordsAggregate.java
               src/testcases/org/apache/poi/hssf/model SheetTest.java
  Log:
  Made sure all row records for the sheet are aggregated since rows are skipped
  if a formula yields a String.
  PR: 15062
  
  Revision  Changes    Path
  1.31      +5 -6      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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- Sheet.java	30 Apr 2003 04:39:16 -0000	1.30
  +++ Sheet.java	9 May 2003 12:39:08 -0000	1.31
  @@ -234,17 +234,16 @@
               }
               else if ( rec.getSid() == RowRecord.sid )
               {
  +            	 RowRecord row = (RowRecord)rec;
  +            	 if (!isfirstrow) rec = null; //only add the aggregate once
  +            	 
                   if ( isfirstrow )
                   {
                       retval.rows = new RowRecordsAggregate();
  -                    rec = retval.rows;
  -                    retval.rows.construct( k, recs );
  +                    rec = retval.rows;                    
                       isfirstrow = false;
                   }
  -                else
  -                {
  -                    rec = null;
  -                }
  +                retval.rows.insertRow(row);
               }
               else if ( rec.getSid() == PrintGridlinesRecord.sid )
               {
  
  
  
  1.6       +4 -1      jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java
  
  Index: RowRecordsAggregate.java
  ===================================================================
  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- RowRecordsAggregate.java	30 Apr 2003 04:39:20 -0000	1.5
  +++ RowRecordsAggregate.java	9 May 2003 12:39:08 -0000	1.6
  @@ -135,6 +135,9 @@
           return lastrow;
       }
   
  +	/*
  +	 * No need to go through all the records as we're just collecting RowRecords 
  +
       public int construct(int offset, List records)
       {
           int k = 0;
  @@ -154,7 +157,7 @@
           }
           return k;
       }
  -
  +	*/
       /**
        * called by the class that is responsible for writing this sucker.
        * Subclasses should implement this so that their data is passed back in a
  
  
  
  1.3       +35 -0     jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java
  
  Index: SheetTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SheetTest.java	11 Apr 2003 02:58:23 -0000	1.2
  +++ SheetTest.java	9 May 2003 12:39:08 -0000	1.3
  @@ -7,6 +7,8 @@
   import junit.framework.TestCase;
   
   import org.apache.poi.hssf.record.ColumnInfoRecord;
  +import org.apache.poi.hssf.record.RowRecord;
  +import org.apache.poi.hssf.record.StringRecord;
   
   /**
    * @author Tony Poppleton
  @@ -118,6 +120,39 @@
   		catch(Exception e){e.printStackTrace();fail(e.getMessage());}
   
   	}
  +
  +	/**
  +	 * Makes sure all rows registered for this sheet are aggregated, they were being skipped
  +	 *
  +	 */
  +	public void testRowAggregation() {
  +		List records = new ArrayList();
  +		RowRecord row = new RowRecord();
  +		row.setRowNumber(0);		
  +		records.add(row);
  +		
  +		row = new RowRecord();
  +		row.setRowNumber(1);
  +		records.add(row);
  +
  +		records.add(new StringRecord());
  +		
  +		row = new RowRecord();
  +		row.setRowNumber(2);
  +		records.add(row);
  +		
  +		
  +		Sheet sheet = Sheet.createSheet(records, 0);
  +		assertNotNull("Row [2] was skipped", sheet.getRow(2));
  +		
  +	}
  +
  +
  +	public static void main(String [] args) {
  +		System.out
  +		.println("Testing : "+SheetTest.class.getName());
  +		junit.textui.TestRunner.run(SheetTest.class);
  +  }
   
   }