[Bug 61116] New: Formula evaluation fails when using matrix addition within index function call with RuntimeException

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[Bug 61116] New: Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

            Bug ID: 61116
           Summary: Formula evaluation fails when using matrix addition
                    within index function call with RuntimeException
           Product: POI
           Version: 3.16-FINAL
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSSF
          Assignee: [hidden email]
          Reporter: [hidden email]
  Target Milestone: ---

Created attachment 35003
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=35003&action=edit
Example workbook showing the problematic formulas

The formula evaluation fails when using following formula:
  "=INDEX(A+B,1,1)"
where A and B are both matrices. I've attached an example workbook that shows
the problem (matrix-addition-within-index-function.xlsx). Simply use the
FormulaEvaluator to evaluate the cell 'sample2'!B2 and you will get the
following exception:

"java.lang.RuntimeException: Incomplete code - cannot handle first arg of type
(org.apache.poi.ss.formula.eval.NumberEval)
        at
org.apache.poi.ss.formula.functions.Index.convertFirstArg(Index.java:106)
        at org.apache.poi.ss.formula.functions.Index.evaluate(Index.java:75)
        at org.apache.poi.ss.formula.functions.Index.evaluate(Index.java:116)
        at
org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:550)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:317)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluateReference(WorkbookEvaluator.java:750)
        at
org.apache.poi.ss.formula.SheetRefEvaluator.getEvalForCell(SheetRefEvaluator.java:48)"

The currently implementation assumes that the maxtrix addition always returns a
single double value which is fine for maxtrix formulas like "=A+B". In this
case it does the same and so "A+B" is evaluated to a sum of single values from
each matrix. As soon this resulting double value is passed to the index
function it will fail with the exception.

How to fix?
I guess the method TwoOperandNumericOperation.evaluate(int, int, ValueEval,
ValueEval) need to distiguish whether the expected output of the operation
(affects not only AddPtg) is a single value or still an area.

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[Bug 61116] Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

Dominik Stadler <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 OS|                            |All

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[Bug 61116] Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
In reply to this post by Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

Dominik Stadler <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #1 from Dominik Stadler <[hidden email]> ---
Can you check if the changes done in bug 61469 solve this?

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[Bug 61116] Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
In reply to this post by Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

PJ Fanning <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |RESOLVED
         Resolution|---                         |FIXED

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[Bug 61116] Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
In reply to this post by Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

Mario <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
             Status|RESOLVED                    |REOPENED

--- Comment #2 from Mario <[hidden email]> ---
I just checked with 3.16.final with applied patch of bug 61469 - the result is
still the same exception with same error message

java.lang.RuntimeException: Incomplete code - cannot handle first arg of type
(org.apache.poi.ss.formula.eval.NumberEval)
        at
org.apache.poi.ss.formula.functions.Index.convertFirstArg(Index.java:107)
        at org.apache.poi.ss.formula.functions.Index.evaluate(Index.java:75)
        at org.apache.poi.ss.formula.functions.Index.evaluate(Index.java:116)
        at
org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:139)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:524)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:291)
        at
org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:233)
        at
org.apache.poi.xssf.usermodel.BaseXSSFFormulaEvaluator.evaluateFormulaCellValue(BaseXSSFFormulaEvaluator.java:65)
        at
org.apache.poi.ss.formula.BaseFormulaEvaluator.evaluate(BaseFormulaEvaluator.java:101)

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[Bug 61116] Formula evaluation fails when using matrix addition within index function call with RuntimeException

Bugzilla from bugzilla@apache.org
In reply to this post by Bugzilla from bugzilla@apache.org
https://bz.apache.org/bugzilla/show_bug.cgi?id=61116

--- Comment #3 from Mario <[hidden email]> ---
Created attachment 35466
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=35466&action=edit
Patch with JUnit testcase for example workbook

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]