You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/09/23 19:18:58 UTC

svn commit: r698250 - in /poi/branches/ooxml: ./ src/documentation/content/xdocs/ src/java/org/apache/poi/hssf/record/ src/java/org/apache/poi/hssf/usermodel/ src/java/org/apache/poi/ss/ src/java/org/apache/poi/ss/formula/ src/testcases/org/apache/poi/...

Author: nick
Date: Tue Sep 23 10:18:57 2008
New Revision: 698250

URL: http://svn.apache.org/viewvc?rev=698250&view=rev
Log:
Merged revisions 697559 via svnmerge from 
https://svn.apache.org/repos/asf/poi/trunk

........
  r697559 | nick | 2008-09-21 18:38:39 +0100 (Sun, 21 Sep 2008) | 1 line
  
  Fix bug #45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out
........

Modified:
    poi/branches/ooxml/   (props changed)
    poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
    poi/branches/ooxml/src/documentation/content/xdocs/status.xml
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FooterRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/HeaderRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFooter.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFHeader.java
    poi/branches/ooxml/src/java/org/apache/poi/ss/   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/EvaluationCache.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/EvaluationTracker.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/FormulaParser.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/LazyAreaEval.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/LazyRefEval.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/OperandClassTransformer.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/OperationEvaluatorFactory.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/ParseNode.java   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java   (props changed)
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
    poi/branches/ooxml/src/testcases/org/apache/poi/ss/   (props changed)

Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk:693591-694881,695264-695420,695621,695649-697145,697520
+/poi/trunk:693591-694881,695264-695420,695621,695649-697145,697520,697559

Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-697539
+/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-697539,697559

Modified: poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/changes.xml?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/changes.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/changes.xml Tue Sep 23 10:18:57 2008
@@ -67,6 +67,7 @@
            <action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
         </release>
         <release version="3.2-alpha1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out</action>
            <action dev="POI-DEVELOPERS" type="add">45844 - Addtional diagnostics for HSLF SlideShowRecordDumper</action>
            <action dev="POI-DEVELOPERS" type="fix">45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero</action>
            <action dev="POI-DEVELOPERS" type="fix">45815 - Bit mask values in StyleTextPropAtom were not preserved across read-write</action>

Modified: poi/branches/ooxml/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/status.xml?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/status.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/status.xml Tue Sep 23 10:18:57 2008
@@ -64,6 +64,7 @@
            <action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
         </release>
         <release version="3.2-alpha1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">45777 - Throw an exception if HSSF Footer or Header is attemped to be set too long, rather than having it break during writing out</action>
            <action dev="POI-DEVELOPERS" type="add">45844 - Addtional diagnostics for HSLF SlideShowRecordDumper</action>
            <action dev="POI-DEVELOPERS" type="fix">45829 - HSSFPicture.getImageDimension() failed when DPI of image is zero</action>
            <action dev="POI-DEVELOPERS" type="fix">45815 - Bit mask values in StyleTextPropAtom were not preserved across read-write</action>

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FooterRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FooterRecord.java?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FooterRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FooterRecord.java Tue Sep 23 10:18:57 2008
@@ -118,6 +118,18 @@
         field_4_footer = footer;
         field_3_unicode_flag = 
             (byte) (StringUtil.hasMultibyte(field_4_footer) ? 1 : 0);
+        // Check it'll fit into the space in the record
+        
+        if(field_4_footer == null) return;
+        if(field_3_unicode_flag == 1) {
+        	if(field_4_footer.length() > 127) {
+        		throw new IllegalArgumentException("Footer string too long (limit is 127 for unicode strings)");
+        	}
+        } else {
+        	if(field_4_footer.length() > 255) {
+        		throw new IllegalArgumentException("Footer string too long (limit is 255 for non-unicode strings)");
+        	}
+        }
     }
 
     /**

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/HeaderRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/HeaderRecord.java?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/HeaderRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/HeaderRecord.java Tue Sep 23 10:18:57 2008
@@ -117,6 +117,18 @@
         field_4_header = header;
         field_3_unicode_flag = 
             (byte) (StringUtil.hasMultibyte(field_4_header) ? 1 : 0);
+        
+        // Check it'll fit into the space in the record
+        if(field_4_header == null) return;
+        if(field_3_unicode_flag == 1) {
+        	if(field_4_header.length() > 127) {
+        		throw new IllegalArgumentException("Header string too long (limit is 127 for unicode strings)");
+        	}
+        } else {
+        	if(field_4_header.length() > 255) {
+        		throw new IllegalArgumentException("Header string too long (limit is 255 for non-unicode strings)");
+        	}
+        }
     }
 
     /**

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFooter.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFooter.java?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFooter.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFooter.java Tue Sep 23 10:18:57 2008
@@ -71,6 +71,11 @@
 	right = newRight;
 	createFooterString();
     }
+    
+    protected String getRawFooter() {
+    	return footerRecord.getFooter();
+    }
+
 
     /**
      * Creates the complete footer string based on the left, center, and middle

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFHeader.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFHeader.java?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFHeader.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFHeader.java Tue Sep 23 10:18:57 2008
@@ -78,6 +78,10 @@
         right = newRight;
         createHeaderString();
     }
+    
+    protected String getRawHeader() {
+    	return headerRecord.getHeader();
+    }
 
     /**
      * Creates the complete header string based on the left, center, and middle

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss:693591-694881,695264-695420,695621,695649-696627,696860-696898,697145,697520
+/poi/trunk/src/java/org/apache/poi/ss:693591-694881,695264-695420,695621,695649-696627,696860-696898,697145,697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/EvaluationCache.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationCache.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/EvaluationTracker.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationTracker.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/EvaluationTracker.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/FormulaParser.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParser.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParser.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/LazyAreaEval.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/LazyAreaEval.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/LazyAreaEval.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/LazyRefEval.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/LazyRefEval.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/LazyRefEval.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/OperandClassTransformer.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/OperandClassTransformer.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/OperandClassTransformer.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/OperationEvaluatorFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/OperationEvaluatorFactory.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/OperationEvaluatorFactory.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/ParseNode.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/ParseNode.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/ParseNode.java:697520,697559

Propchange: poi/branches/ooxml/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java:697520
+/poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java:697520,697559

Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=698250&r1=698249&r2=698250&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Tue Sep 23 10:18:57 2008
@@ -1416,4 +1416,64 @@
         assertFalse(nwb.isSheetHidden(2));
         assertTrue(nwb.isSheetVeryHidden(2));
     }
+    
+    /**
+     * header / footer text too long
+     */
+    public void test45777() {
+    	HSSFWorkbook wb = new HSSFWorkbook();
+    	HSSFSheet s = wb.createSheet();
+    	
+    	String s248 = "";
+    	for(int i=0; i<248; i++) {
+    		s248 += "x";
+    	}
+    	String s249 = s248 + "1";
+    	String s250 = s248 + "12";
+    	String s251 = s248 + "123";
+    	assertEquals(248, s248.length());
+    	assertEquals(249, s249.length());
+    	assertEquals(250, s250.length());
+    	assertEquals(251, s251.length());
+    	
+    	
+    	// Try on headers
+    	s.getHeader().setCenter(s248);
+    	assertEquals(254, s.getHeader().getRawHeader().length());
+    	writeOutAndReadBack(wb);
+    	
+    	s.getHeader().setCenter(s249);
+    	assertEquals(255, s.getHeader().getRawHeader().length());
+    	writeOutAndReadBack(wb);
+    	
+    	try {
+    		s.getHeader().setCenter(s250); // 256
+    		fail();
+    	} catch(IllegalArgumentException e) {}
+    	
+    	try {
+    		s.getHeader().setCenter(s251); // 257
+    		fail();
+    	} catch(IllegalArgumentException e) {}
+    	
+    	
+    	// Now try on footers
+    	s.getFooter().setCenter(s248);
+    	assertEquals(254, s.getFooter().getRawFooter().length());
+    	writeOutAndReadBack(wb);
+    	
+    	s.getFooter().setCenter(s249);
+    	assertEquals(255, s.getFooter().getRawFooter().length());
+    	writeOutAndReadBack(wb);
+    	
+    	try {
+    		s.getFooter().setCenter(s250); // 256
+    		fail();
+    	} catch(IllegalArgumentException e) {}
+    	
+    	try {
+    		s.getFooter().setCenter(s251); // 257
+    		fail();
+    	} catch(IllegalArgumentException e) {}
+    }
 }

Propchange: poi/branches/ooxml/src/testcases/org/apache/poi/ss/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 23 10:18:57 2008
@@ -1 +1 @@
-/poi/trunk/src/testcases/org/apache/poi/ss:693591-694881,695264-695420,695621,695649-696813,697145,697520
+/poi/trunk/src/testcases/org/apache/poi/ss:693591-694881,695264-695420,695621,695649-696813,697145,697520,697559



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org