dmui 2003/11/17 13:10:35
Modified: src/testcases/org/apache/poi/hssf/usermodel Tag:
REL_2_BRANCH TestBugs.java
src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
MergeCellsRecord.java
Added: src/testcases/org/apache/poi/hssf/record Tag: REL_2_BRANCH
TestMergeCellsRecord.java
Log:
The cloned reference for merged cells did not create a new collection,
so deletes cascaded to the original.
Reported by: [EMAIL PROTECTED]
PR: 22720
Revision Changes Path
No revision
No revision
1.1.2.1 +79 -0
jakarta-poi/src/testcases/org/apache/poi/hssf/record/Attic/TestMergeCellsRecord.java
No revision
No revision
1.1.2.15 +35 -4
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
Index: TestBugs.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -r1.1.2.14 -r1.1.2.15
--- TestBugs.java 30 Oct 2003 17:20:26 -0000 1.1.2.14
+++ TestBugs.java 17 Nov 2003 21:10:35 -0000 1.1.2.15
@@ -54,16 +54,16 @@
package org.apache.poi.hssf.usermodel;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Date;
import junit.framework.TestCase;
+import org.apache.poi.hssf.util.Region;
+
/**
@@ -406,6 +406,37 @@
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
System.out.println(cell.getStringCellValue());
+ }
+
+ /**
+ * Merged regions were being removed from the parent in cloned sheets
+ * @throws Exception
+ */
+ public void test22720() throws Exception {
+ HSSFWorkbook workBook = new HSSFWorkbook();
+ workBook.createSheet("TEST");
+ HSSFSheet template = workBook.getSheetAt(0);
+
+ template.addMergedRegion(new Region(0, (short)0, 1, (short)2));
+ template.addMergedRegion(new Region(1, (short)0, 2, (short)2));
+
+ HSSFSheet clone = workBook.cloneSheet(0);
+ int originalMerged = template.getNumMergedRegions();
+ assertEquals("2 merged regions", 2, originalMerged);
+
+// remove merged regions from clone
+ for (int i=template.getNumMergedRegions()-1; i>=0; i--) {
+ clone.removeMergedRegion(i);
+ }
+
+ assertEquals("Original Sheet's Merged Regions were removed", originalMerged,
template.getNumMergedRegions());
+// check if template's merged regions are OK
+ if (template.getNumMergedRegions()>0) {
+ // fetch the first merged region...EXCEPTION OCCURS HERE
+ template.getMergedRegionAt(0);
+ }
+ //make sure we dont exception
+
}
}
No revision
No revision
1.6.2.1 +2 -1
jakarta-poi/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java
Index: MergeCellsRecord.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- MergeCellsRecord.java 30 Apr 2003 04:38:47 -0000 1.6
+++ MergeCellsRecord.java 17 Nov 2003 21:10:35 -0000 1.6.2.1
@@ -326,7 +326,8 @@
public Object clone() {
MergeCellsRecord rec = new MergeCellsRecord();
rec.field_1_num_areas = field_1_num_areas;
- rec.field_2_regions = field_2_regions;
+ rec.field_2_regions = new ArrayList();
+ rec.field_2_regions.addAll(field_2_regions);
return rec;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]