Browse Source

[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
tags/REL_5_2_4
PJ Fanning 10 months ago
parent
commit
c488cae3f3

+ 7
- 1
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java 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;
}


+ 11
- 1
poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java 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();
}
}
}
}
}


Loading…
Cancel
Save