You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/07/22 15:40:56 UTC
svn commit: r1891722 - in /poi/trunk/poi-ooxml/src:
main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java
Author: fanningpj
Date: Thu Jul 22 15:40:56 2021
New Revision: 1891722
URL: http://svn.apache.org/viewvc?rev=1891722&view=rev
Log:
[bug-64759] ignore unknown relationships when cloning sheets
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1891722&r1=1891721&r2=1891722&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Thu Jul 22 15:40:56 2021
@@ -688,9 +688,12 @@ public class XSSFWorkbook extends POIXML
}
/**
+ * Modified in POI 5.0.1 to only log issues with unknown relationship types
+ * - see https://bz.apache.org/bugzilla/show_bug.cgi?id=64759
+ *
* @since 3.14-Beta1
*/
- private static void addRelation(RelationPart rp, POIXMLDocumentPart target) {
+ private static boolean addRelation(RelationPart rp, POIXMLDocumentPart target) {
PackageRelationship rel = rp.getRelationship();
if (rel.getTargetMode() == TargetMode.EXTERNAL) {
target.getPackagePart().addRelationship(
@@ -699,10 +702,12 @@ public class XSSFWorkbook extends POIXML
XSSFRelation xssfRel = XSSFRelation.getInstance(rel.getRelationshipType());
if (xssfRel == null) {
// Don't copy all relations blindly, but only the ones we know about
- throw new POIXMLException("Can't clone sheet - unknown relation type found: "+rel.getRelationshipType());
+ LOG.atWarn().log("Can't clone sheet relationship (some data will be lost in the cloned sheet) - unknown relation type found: {}", rel.getRelationshipType());
+ return false;
}
target.addRelation(rel.getId(), xssfRel, rp.getDocumentPart());
}
+ return true;
}
/**
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java?rev=1891722&r1=1891721&r2=1891722&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFCloneSheet.java Thu Jul 22 15:40:56 2021
@@ -118,4 +118,14 @@ class TestXSSFCloneSheet extends BaseTe
}
}
+ @Test
+ void test64759() throws IOException {
+ try (Workbook template_wb = XSSFTestDataSamples.openSampleWorkbook("right-to-left.xlsx")) {
+ Sheet template_sh = template_wb.getSheetAt(0);
+ assertNotNull(template_sh);
+ Sheet source_sh = template_wb.cloneSheet(0);
+ assertNotNull(source_sh);
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org