]> source.dussan.org Git - poi.git/commitdiff
[bug-64964] HSSFCell.convertCellValueToBoolean shall throw more specific exception
authorPJ Fanning <fanningpj@apache.org>
Tue, 8 Dec 2020 17:09:36 +0000 (17:09 +0000)
committerPJ Fanning <fanningpj@apache.org>
Tue, 8 Dec 2020 17:09:36 +0000 (17:09 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884210 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFCell.java
src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java

index 9c54fbb84f029c53d7ea6aac4e3a5defb358760c..a29179ad23940600b578ca9f37537033c017d81d 100644 (file)
@@ -831,6 +831,7 @@ public class HSSFCell extends CellBase {
      * setCellValue(boolean) straight afterwards.  This method only exists to give
      * the cell a somewhat reasonable value until the setCellValue() call (if at all).
      * TODO - perhaps a method like setCellTypeAndValue(int, Object) should be introduced to avoid this
+     * @throws IllegalStateException if cell type cannot be converted to boolean
      */
     private boolean convertCellValueToBoolean() {
 
@@ -855,8 +856,9 @@ public class HSSFCell extends CellBase {
             case BLANK:
                 return false;
         }
-        throw new RuntimeException("Unexpected cell type (" + _cellType + ")");
+        throw new IllegalStateException("Unexpected cell type (" + _cellType + ")");
     }
+
     private String convertCellValueToString() {
 
         switch (_cellType) {
index 2f9be443e16a2bbba49c874b2d4708ad1d8f8dc4..4eb67ea8a58afe76b885d2859b3ef19d43a5afc6 100644 (file)
@@ -915,11 +915,12 @@ public class SXSSFCell extends CellBase {
             }
         }
     }
+
 //COPIED FROM https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java since the functions are declared private there
     /**
      * Used to help format error messages
      */
-    private static RuntimeException typeMismatch(CellType expectedTypeCode, CellType actualTypeCode, boolean isFormulaCell) {
+    private static IllegalStateException typeMismatch(CellType expectedTypeCode, CellType actualTypeCode, boolean isFormulaCell) {
         String msg = "Cannot get a " + expectedTypeCode + " value from a " + actualTypeCode
                 + " " + (isFormulaCell ? "formula " : "") + "cell";
         return new IllegalStateException(msg);
@@ -944,7 +945,8 @@ public class SXSSFCell extends CellBase {
             case ERROR:
             case BLANK:
                 return false;
-            default: throw new RuntimeException("Unexpected cell type (" + cellType + ")");
+            default:
+                throw new IllegalStateException("Unexpected cell type (" + cellType + ")");
         }
 
     }
index af604234d47a3688abb6980a7de8bfd679170eaa..025726e19d8dfc2275e6a07e4ed02db6fc224dde 100644 (file)
@@ -1143,6 +1143,8 @@ public final class XSSFCell extends CellBase {
      * setCellValue(boolean) straight afterwards.  This method only exists to give
      * the cell a somewhat reasonable value until the setCellValue() call (if at all).
      * TODO - perhaps a method like setCellTypeAndValue(CellType, Object) should be introduced to avoid this
+     *
+     * @throws IllegalStateException if cell type cannot be converted to boolean
      */
     private boolean convertCellValueToBoolean() {
         CellType cellType = getCellType();
@@ -1168,7 +1170,7 @@ public final class XSSFCell extends CellBase {
                 return false;
                 
             default:
-                throw new RuntimeException("Unexpected cell type (" + cellType + ")");
+                throw new IllegalStateException("Unexpected cell type (" + cellType + ")");
         }
     }