From 570b87c8857e3f95508edc3319ffe59b66132cde Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 3 Jul 2014 11:21:03 +0000 Subject: [PATCH] Update the CheckFunctionsSupported example to take advantage of the new NotImplementedFunctionException to identify the function that is missing git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1607589 13f79535-47bb-0310-9956-ffa450edef68 --- .../examples/formula/CheckFunctionsSupported.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/examples/src/org/apache/poi/ss/examples/formula/CheckFunctionsSupported.java b/src/examples/src/org/apache/poi/ss/examples/formula/CheckFunctionsSupported.java index 0477e4732..cf6c176cc 100644 --- a/src/examples/src/org/apache/poi/ss/examples/formula/CheckFunctionsSupported.java +++ b/src/examples/src/org/apache/poi/ss/examples/formula/CheckFunctionsSupported.java @@ -27,6 +27,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.poi.ss.formula.eval.NotImplementedException; +import org.apache.poi.ss.formula.eval.NotImplementedFunctionException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; @@ -128,10 +129,14 @@ public class CheckFunctionsSupported { try { evaluator.evaluate(c); } catch (Exception e) { - if (e instanceof NotImplementedException) { - NotImplementedException nie = (NotImplementedException)e; - // TODO - System.err.println("TODO - Not Implemented: " + nie); + if (e instanceof NotImplementedException && e.getCause() != null) { + // Has been wrapped with cell details, but we know those + e = (Exception)e.getCause(); + } + + if (e instanceof NotImplementedFunctionException) { + NotImplementedFunctionException nie = (NotImplementedFunctionException)e; + unsupportedFunctions.add(nie.getFunctionName()); } unevaluatableCells.put(new CellReference(c), e); }