https://bz.apache.org/bugzilla/show_bug.cgi?id=65675
Bug ID: 65675
Summary: NullPointerException with external (Cross-Workbook)
references
Product: POI
Version: 5.0.0-FINAL
Hardware: PC
OS: other
Status: NEW
Severity: normal
Priority: P2
Component: XSSF
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
When executing the following code, it results in a NullPointerException.
It is supposed to copy the content of cells from another workbook sheet into
`workbook`. Calling `setCellFormula(String)` without the external reference
does work.
```scala
import org.apache.poi.ss.usermodel.CellType
import org.apache.poi.xssf.usermodel.XSSFWorkbook
object Main {
def main(args: Array[String]): Unit = {
val workbook = new XSSFWorkbook()
val evaluator = workbook.getCreationHelper.createFormulaEvaluator()
evaluator.setIgnoreMissingWorkbooks(true)
val sheet = workbook.createSheet("sheet")
val row = sheet.createRow(0)
val cell = row.createCell(0, CellType.FORMULA)
try {
cell.setCellFormula(f"[some-workbook-that-does-not-yet-exist.xlsx]main!B:D")
} catch {
case e: Throwable => e.printStackTrace()
}
}
}
```
Here is the Stacktrace :
```
java.lang.NullPointerException
at
org.apache.poi.xssf.usermodel.BaseXSSFEvaluationWorkbook.findExternalLinkIndex(BaseXSSFEvaluationWorkbook.java:140)
at
org.apache.poi.xssf.usermodel.BaseXSSFEvaluationWorkbook.resolveBookIndex(BaseXSSFEvaluationWorkbook.java:114)
at
org.apache.poi.xssf.usermodel.BaseXSSFEvaluationWorkbook.get3DReferencePtg(BaseXSSFEvaluationWorkbook.java:268)
at
org.apache.poi.ss.formula.FormulaParser.createAreaRefParseNode(FormulaParser.java:992)
at
org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:528)
at
org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:322)
at
org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1548)
at
org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1506)
at
org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1493)
at
org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1867)
at
org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1994)
at
org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1978)
at
org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1935)
at
org.apache.poi.ss.formula.FormulaParser.intersectionExpression(FormulaParser.java:1908)
at
org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1889)
at
org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:2036)
at
org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:170)
at org.apache.poi.xssf.usermodel.XSSFCell.setFormula(XSSFCell.java:553)
at
org.apache.poi.xssf.usermodel.XSSFCell.setCellFormulaImpl(XSSFCell.java:529)
at
org.apache.poi.ss.usermodel.CellBase.setCellFormula(CellBase.java:126)
at Main$.main(Main.scala:25)
at Main.main(Main.scala)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.Run.invokeMain(Run.scala:133)
at sbt.Run.execute$1(Run.scala:82)
at sbt.Run.$anonfun$runWithLoader$5(Run.scala:110)
at
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:17)
at sbt.TrapExit$App.run(TrapExit.scala:258)
at java.base/java.lang.Thread.run(Thread.java:834)
```
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]