You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2008/02/13 23:34:11 UTC
DO NOT REPLY [Bug 44413] - [patch] INDEX() formula cannot contain its own location in the data array range
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=44413>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=44413
josh@gildedtree.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|INDEX() formula cannot |[patch] INDEX() formula
|contain its own location in |cannot contain its own
|the data array range |location in the data array
| |range
------- Additional Comments From josh@gildedtree.com 2008-02-13 14:34 -------
Bugfix patch submitted.
The root problem is that the scratchpad evaluator does(/did) not handle
circular references (it crashes with SOE).
Some functions like INDEX, OFFSET, VLOOKUP are distinguished by the
characteristic that not every cell in the range arguments has to be
evaluated. This is in contrast to more basic functions like SUM and COUNTIF
where every input cell must be evaluated. Functions like INDEX can be set up
to potentially cause cyclic references, but nonetheless behave OK due to
careful choice of other parameters (like in this example).
POI's evaluation strategy is to fully evaluate all operator arguments prior to
calling the operator. So the situation described here causes SOE due to a
cyclic reference on cell A4 even though cell A4 should eventually get ignored
by this call to INDEX.
The patch supplied here allows HSSFFormulaEvaluator to handle cyclic
references (and *potential* cyclic references) gracefully. No change was made
to the INDEX function.
A junit test case was added to show this bug (exactly as described), and also
some simpler cyclic errors involving plain cell references.
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org