]> source.dussan.org Git - poi.git/commitdiff
Fix Eclipse warnings, provide better error message and adjust javadoc slightly
authorDominik Stadler <centic@apache.org>
Fri, 9 Jan 2015 16:52:23 +0000 (16:52 +0000)
committerDominik Stadler <centic@apache.org>
Fri, 9 Jan 2015 16:52:23 +0000 (16:52 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1650598 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePart.java
src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java
src/testcases/org/apache/poi/ss/formula/TestWorkbookEvaluator.java

index 1420fd44154cce49ed5ebe9970b32338777a12a7..8b72770a774d53782f7cf3050c114783d9a486b9 100644 (file)
@@ -168,7 +168,7 @@ public abstract class PackagePart implements RelationshipSource {
        public PackageRelationship addExternalRelationship(String target,
                        String relationshipType, String id) {
                if (target == null) {
-                       throw new IllegalArgumentException("target");
+                       throw new IllegalArgumentException("target is null for type " + relationshipType);
                }
                if (relationshipType == null) {
                        throw new IllegalArgumentException("relationshipType");
index 49817e5eab387bb7e4e6cecd1da170a1ed3f44ce..904560673d14aeef2178938b9f8e2ba000990183 100644 (file)
@@ -98,6 +98,8 @@ public class SXSSFSheet implements Sheet, Cloneable
      *
      * @param rownum  row number
      * @return high level Row object representing a row in the sheet
+     * @throws IllegalArgumentException If the max. number of rows is exceeded or 
+     *      a rownum is provided where the row is already flushed to disk.
      * @see #removeRow(Row)
      */
     public Row createRow(int rownum)
index 712335f85cdb2e4b779802f7fb56e376fa0497ea..b989843456cd91ab0fc1f082b2a35ef923801722 100644 (file)
@@ -17,6 +17,8 @@
 
 package org.apache.poi.ss.formula;
 
+import java.io.IOException;
+
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
@@ -213,37 +215,43 @@ public class TestWorkbookEvaluator extends TestCase {
        /**
         * Functions like IF, INDIRECT, INDEX, OFFSET etc can return AreaEvals which
         * should be dereferenced by the evaluator
+        * @throws IOException 
         */
-       public void testResultOutsideRange() {
+       public void testResultOutsideRange() throws IOException {
                Workbook wb = new HSSFWorkbook();
-               Cell cell = wb.createSheet("Sheet1").createRow(0).createCell(0);
-               cell.setCellFormula("D2:D5"); // IF(TRUE,D2:D5,D2) or  OFFSET(D2:D5,0,0) would work too
-               FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator();
-               CellValue cv;
                try {
-                       cv = fe.evaluate(cell);
-               } catch (IllegalArgumentException e) {
-                       if ("Specified row index (0) is outside the allowed range (1..4)".equals(e.getMessage())) {
-                               throw new AssertionFailedError("Identified bug in result dereferencing");
-                       }
-                       throw new RuntimeException(e);
+               Cell cell = wb.createSheet("Sheet1").createRow(0).createCell(0);
+               cell.setCellFormula("D2:D5"); // IF(TRUE,D2:D5,D2) or  OFFSET(D2:D5,0,0) would work too
+               FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator();
+               CellValue cv;
+               try {
+                       cv = fe.evaluate(cell);
+               } catch (IllegalArgumentException e) {
+                       if ("Specified row index (0) is outside the allowed range (1..4)".equals(e.getMessage())) {
+                               throw new AssertionFailedError("Identified bug in result dereferencing");
+                       }
+                       throw new RuntimeException(e);
+               }
+               assertEquals(Cell.CELL_TYPE_ERROR, cv.getCellType());
+               assertEquals(ErrorConstants.ERROR_VALUE, cv.getErrorValue());
+    
+               // verify circular refs are still detected properly
+               fe.clearAllCachedResultValues();
+               cell.setCellFormula("OFFSET(A1,0,0)");
+               cv = fe.evaluate(cell);
+               assertEquals(Cell.CELL_TYPE_ERROR, cv.getCellType());
+               assertEquals(ErrorEval.CIRCULAR_REF_ERROR.getErrorCode(), cv.getErrorValue());
+               } finally {
+                   wb.close();
                }
-               assertEquals(Cell.CELL_TYPE_ERROR, cv.getCellType());
-               assertEquals(ErrorConstants.ERROR_VALUE, cv.getErrorValue());
-
-               // verify circular refs are still detected properly
-               fe.clearAllCachedResultValues();
-               cell.setCellFormula("OFFSET(A1,0,0)");
-               cv = fe.evaluate(cell);
-               assertEquals(Cell.CELL_TYPE_ERROR, cv.getCellType());
-               assertEquals(ErrorEval.CIRCULAR_REF_ERROR.getErrorCode(), cv.getErrorValue());
        }
        
 
   /**
    * formulas with defined names.
+ * @throws IOException 
    */
-  public void testNamesInFormulas() {
+  public void testNamesInFormulas() throws IOException {
     Workbook wb = new HSSFWorkbook();
     Sheet sheet = wb.createSheet("Sheet1");
     
@@ -279,6 +287,8 @@ public class TestWorkbookEvaluator extends TestCase {
     assertEquals(10.0, fe.evaluate(row1.getCell(2)).getNumberValue());
     assertEquals(15.0, fe.evaluate(row2.getCell(2)).getNumberValue());
     assertEquals(28.14, fe.evaluate(row3.getCell(2)).getNumberValue());
+    
+    wb.close();
   }
        
 }