]> source.dussan.org Git - poi.git/commitdiff
more specific exception instead of NPE
authorPJ Fanning <fanningpj@apache.org>
Sun, 5 Sep 2021 19:05:54 +0000 (19:05 +0000)
committerPJ Fanning <fanningpj@apache.org>
Sun, 5 Sep 2021 19:05:54 +0000 (19:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1892951 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/ss/formula/OperationEvaluationContext.java

index 9b6cda50c55fdaedd328eaf1637a230f1d18fd9b..60fc0145e7b842d4e0a652c11184faec7e50d38e 100644 (file)
@@ -210,7 +210,6 @@ public final class OperationEvaluationContext {
         }
         SheetRangeEvaluator sre = new SheetRangeEvaluator(_sheetIndex, se);
 
-        // ugly typecast - TODO - make spreadsheet version more easily accessible
         SpreadsheetVersion ssVersion = _workbook.getSpreadsheetVersion();
 
         NameType part1refType = classifyCellReference(refStrPart1, ssVersion);
@@ -219,7 +218,11 @@ public final class OperationEvaluationContext {
                 return ErrorEval.REF_INVALID;
             case NAMED_RANGE:
                 EvaluationName nm = _workbook.getName(refStrPart1, _sheetIndex);
-                if(!nm.isRange()){
+                if(nm == null) {
+                    throw new RuntimeException("Specified name '" + refStrPart1 +
+                            "' is not found in the workbook (sheetIndex=" + _sheetIndex +").");
+                }
+                if(!nm.isRange()) {
                     throw new RuntimeException("Specified name '" + refStrPart1 + "' is not a range as expected.");
                 }
                 return _bookEvaluator.evaluateNameFormula(nm.getNameDefinition(), this);