From 2abd64f3a90bbd91d54f91b2fee6c4748e8d4ca7 Mon Sep 17 00:00:00 2001 From: Javen O'Neal Date: Thu, 19 Jan 2017 09:01:39 +0000 Subject: [PATCH] bug 60601: unset hyperlinks after removing them individually from the DOM git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1779437 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/poi/xssf/usermodel/XSSFSheet.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 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 d6fc4353e..61a56a102 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -3485,15 +3485,16 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { worksheet.getHyperlinks().setHyperlinkArray(ctHls); } else { - // 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); } + // For some reason, we have to remove the hyperlinks one by one from the CTHyperlinks array + // before unsetting the hyperlink array. + // Resetting the hyperlink array seems to break some XML nodes. + //worksheet.getHyperlinks().setHyperlinkArray(new CTHyperlink[0]); + worksheet.unsetHyperlinks(); } else { // nothing to do }