aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJaven O'Neal <onealj@apache.org>2017-01-19 08:09:11 +0000
committerJaven O'Neal <onealj@apache.org>2017-01-19 08:09:11 +0000
commitb3d1bef3a1a4fa29f607f733fd5b826618e2c6ae (patch)
tree62243656db521287b905816f3c94832f59b9265d /src
parentf055f995498ab1739957abe10644f292feeb151b (diff)
downloadpoi-b3d1bef3a1a4fa29f607f733fd5b826618e2c6ae.tar.gz
poi-b3d1bef3a1a4fa29f607f733fd5b826618e2c6ae.zip
bug 60601: hyperlinks have to be removed one by one to avoid other errors
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1779429 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index b7b30126cb..d6fc4353e6 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -3485,7 +3485,18 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
worksheet.getHyperlinks().setHyperlinkArray(ctHls);
}
else {
- worksheet.unsetHyperlinks();
+ // For some reason, we have to remove the hyperlinks one by one from the CTHyperlinks array
+ // rather than unsetting or resetting the hyperlink array.
+ //worksheet.getHyperlinks().setHyperlinkArray(new CTHyperlink[0]);
+ //worksheet.unsetHyperlinks();
+ if (worksheet.getHyperlinks() != null) {
+ final int count = worksheet.getHyperlinks().sizeOfHyperlinkArray();
+ for (int i=count-1; i>=0; i--) {
+ worksheet.getHyperlinks().removeHyperlink(i);
+ }
+ } else {
+ // nothing to do
+ }
}
int minCell=Integer.MAX_VALUE, maxCell=Integer.MIN_VALUE;