This is an automated email from the ASF dual-hosted git repository.
tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new 0eb16365d1 [TIKA-4993] Upgrade poi.version from 5.5.1 to 6.0.0 (#3405)
0eb16365d1 is described below
commit 0eb16365d1a35c034adeebf42a8ba2a9ea4ebbf1
Author: Tilman Hausherr <[email protected]>
AuthorDate: Mon Oct 26 13:47:15 2026 +0100
[TIKA-4993] Upgrade poi.version from 5.5.1 to 6.0.0 (#3405)
* [TIKA-4993] Upgrade poi.version from 5.5.1 to 6.0.0
* Refactor cell method to use Comment interface
Refactor cell method to use POI's Comment interface and deprecate the old
method.
* Fix method signature formatting in XSSFExcelExtractorDecorator
Co-authored-by: Copilot Autofix powered by AI
<[email protected]>
* Refactor comment handling in XSSFExcelExtractorDecorator
---------
Co-authored-by: Copilot Autofix powered by AI
<[email protected]>
---
tika-parent/pom.xml | 2 +-
.../ooxml/XSSFExcelExtractorDecorator.java | 52 +++++++++++++++++-----
2 files changed, 43 insertions(+), 11 deletions(-)
diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index cb1f8a4b13..361194bf35 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -445,7 +445,7 @@
<pax.exam.version>4.14.0</pax.exam.version>
<!-- TODO remove PDFBOX-6261 bugfix in PDFMarkedContent2XHTML with 3.0.9
release -->
<pdfbox.version>3.0.8</pdfbox.version>
- <poi.version>5.5.1</poi.version>
+ <poi.version>6.0.0</poi.version>
<protobuf.version>3.25.9</protobuf.version>
<quartz.version>2.5.2</quartz.version>
<reactor.core.version>3.8.8</reactor.core.version>
diff --git
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
index c7907f93e7..62d6bbd5d9 100644
---
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
+++
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/XSSFExcelExtractorDecorator.java
@@ -38,8 +38,10 @@ import
org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
import org.apache.poi.openxml4j.opc.TargetMode;
+import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.HeaderFooter;
+import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.eventusermodel.XSSFReader;
import
org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
@@ -993,6 +995,7 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
footers = new ArrayList<>();
}
+ @Override
public void startRow(int rowNum) {
try {
// Missing rows, if desired, with a single empty row
@@ -1020,6 +1023,7 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
}
+ @Override
public void endRow(int rowNum) {
try {
xhtml.endElement("tr");
@@ -1045,6 +1049,7 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
}
}
+ @Override
public void cell(String cellRef, String formattedValue,
XSSFCommentsShim.CommentData comment) {
try {
@@ -1085,20 +1090,15 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
}
/**
- * Bridge for POI's {@link SheetContentsHandler} interface, used by the
- * XLSB (binary) path via {@link
org.apache.poi.xssf.binary.XSSFBSheetHandler}.
+ * {@inheritDoc}
*/
+ @Override
+ @Deprecated
public void cell(String cellRef, String formattedValue, XSSFComment
comment) {
- XSSFCommentsShim.CommentData commentData = null;
- if (comment != null) {
- String text = comment.getString() != null ?
- comment.getString().getString() : "";
- commentData = new XSSFCommentsShim.CommentData(
- comment.getAuthor(), text);
- }
- cell(cellRef, formattedValue, commentData);
+ cell(cellRef, formattedValue, (Comment) comment);
}
+ @Override
public void headerFooter(String text, boolean isHeader, String
tagName) {
if (!includeHeadersFooters) {
return;
@@ -1114,6 +1114,21 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
public void endSheet() {
// no-op — satisfies both TikaSheetContentsHandler and
SheetContentsHandler
}
+
+ /**
+ * Bridge for POI's {@link SheetContentsHandler} interface, used by the
+ * XLSB (binary) path via {@link
org.apache.poi.xssf.binary.XSSFBSheetHandler}.
+ */
+ @Override
+ public void cell(String cellReference, String formattedValue, Comment
comment) {
+ XSSFCommentsShim.CommentData commentData = null;
+ if (comment != null) {
+ RichTextString richText = comment.getString();
+ String text = (richText != null) ? richText.getString() : "";
+ commentData = new
XSSFCommentsShim.CommentData(comment.getAuthor(), text);
+ }
+ cell(cellReference, formattedValue, commentData);
+ }
}
protected static class HeaderFooterFromString implements HeaderFooter {
@@ -1123,24 +1138,30 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
this.text = text;
}
+ @Override
public String getCenter() {
return hfHelper.getCenterSection(text);
}
+ @Override
public void setCenter(String paramString) {
}
+ @Override
public String getLeft() {
return hfHelper.getLeftSection(text);
}
+ @Override
public void setLeft(String paramString) {
}
+ @Override
public String getRight() {
return hfHelper.getRightSection(text);
}
+ @Override
public void setRight(String paramString) {
}
}
@@ -1159,6 +1180,7 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
this.delegate = delegate;
}
+ @Override
public void startElement(String uri, String localName, String qName,
Attributes atts)
throws SAXException {
if ("sheetProtection".equals(qName)) {
@@ -1179,42 +1201,52 @@ public class XSSFExcelExtractorDecorator extends
AbstractOOXMLExtractor {
delegate.startElement(uri, localName, qName, atts);
}
+ @Override
public void characters(char[] ch, int start, int length) throws
SAXException {
delegate.characters(ch, start, length);
}
+ @Override
public void endDocument() throws SAXException {
delegate.endDocument();
}
+ @Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
delegate.endElement(uri, localName, qName);
}
+ @Override
public void endPrefixMapping(String prefix) throws SAXException {
delegate.endPrefixMapping(prefix);
}
+ @Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
delegate.ignorableWhitespace(ch, start, length);
}
+ @Override
public void processingInstruction(String target, String data) throws
SAXException {
delegate.processingInstruction(target, data);
}
+ @Override
public void setDocumentLocator(Locator locator) {
delegate.setDocumentLocator(locator);
}
+ @Override
public void skippedEntity(String name) throws SAXException {
delegate.skippedEntity(name);
}
+ @Override
public void startDocument() throws SAXException {
delegate.startDocument();
}
+ @Override
public void startPrefixMapping(String prefix, String uri) throws
SAXException {
delegate.startPrefixMapping(prefix, uri);
}