[bug-66827] treat VML drawing entry for a comment that has incorrect type of TEXT as invalid

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1911407 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2023-08-02 08:58:34 +00:00
parent dd1b0b1128
commit c488cae3f3
2 changed files with 18 additions and 2 deletions

View File

@ -55,6 +55,7 @@ import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException;
import org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STTrueFalse;
/**
@ -301,7 +302,12 @@ public final class XSSFVMLDrawing extends POIXMLDocumentPart {
}
CTClientData cldata = sh.getClientDataArray(0);
if(cldata.getObjectType() != STObjectType.NOTE) {
try {
if (cldata.getObjectType() != STObjectType.NOTE) {
return false;
}
} catch (XmlValueOutOfRangeException e) {
// see https://bz.apache.org/bugzilla/show_bug.cgi?id=66827
return false;
}

View File

@ -3891,7 +3891,17 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
for (int i = 0; i < expectedCount; i++) {
assertNotNull(sst.getItemAt(i));
}
XSSFSheet ws = wb.getSheetAt(0);
int nRowCount = ws.getLastRowNum(); // does not include header row in the count
for (int r = 1; r <= nRowCount; r++) {
XSSFRow row = ws.getRow(r);
if (row != null) {
XSSFCell cellSymbol = row.getCell(0);
if (cellSymbol != null) {
XSSFComment comment = cellSymbol.getCellComment();
}
}
}
}
}