Author: fanningpj
Date: Thu Apr 9 20:14:50 2020
New Revision: 1876336
URL: http://svn.apache.org/viewvc?rev=1876336&view=rev
Log:
[bug-64327] bugfix in SXSSFSheet isColumnTrackedForAutoSizing for untracked.
Thanks to Eugene Kortov. This closes #175
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/AutoSizeColumnTracker.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/AutoSizeColumnTracker.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/AutoSizeColumnTracker.java?rev=1876336&r1=1876335&r2=1876336&view=diff
==============================================================================
---
poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/AutoSizeColumnTracker.java
(original)
+++
poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/AutoSizeColumnTracker.java
Thu Apr 9 20:14:50 2020
@@ -138,7 +138,8 @@ import org.apache.poi.util.Internal;
* @since 3.14beta1
*/
public boolean isColumnTracked(int column) {
- return trackAllColumns || maxColumnWidths.containsKey(column);
+ return (trackAllColumns && !untrackedColumns.contains(column))
+ || maxColumnWidths.containsKey(column);
}
/**
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java?rev=1876336&r1=1876335&r2=1876336&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java
Thu Apr 9 20:14:50 2020
@@ -111,18 +111,7 @@ public class TestAutoSizeColumnTracker {
@Test
public void trackAndUntrackAllColumns() {
- assumeTrue(tracker.getTrackedColumns().isEmpty());
- tracker.trackAllColumns();
- assertTrue(tracker.getTrackedColumns().isEmpty());
-
- Row row = sheet.createRow(0);
- for (int column : columns) {
- row.createCell(column);
- }
- // implicitly track the columns
- tracker.updateColumnWidths(row);
- assertEquals(columns, tracker.getTrackedColumns());
-
+ createColumnsAndTrackThemAll();
tracker.untrackAllColumns();
assertTrue(tracker.getTrackedColumns().isEmpty());
}
@@ -135,7 +124,19 @@ public class TestAutoSizeColumnTracker {
tracker.untrackColumn(0);
assertFalse(tracker.isColumnTracked(0));
}
-
+
+ @Test
+ public void isColumnTrackedAndTrackAllColumns() {
+ createColumnsAndTrackThemAll();
+ tracker.untrackColumn(0);
+ SortedSet<Integer> _newColumns = new TreeSet<>();
+ _newColumns.add(1);
+ _newColumns.add(3);
+ SortedSet<Integer> newColumns =
Collections.unmodifiableSortedSet(_newColumns);
+ assertEquals(newColumns, tracker.getTrackedColumns());
+ assertFalse(tracker.isColumnTracked(0));
+ }
+
@Test
public void getTrackedColumns() {
assumeTrue(tracker.getTrackedColumns().isEmpty());
@@ -214,4 +215,18 @@ public class TestAutoSizeColumnTracker {
Assume.assumeTrue("Cannot verify autoSizeColumn() because the
necessary Fonts are not installed on this machine: " + font,
SheetUtil.canComputeColumnWidth(font));
}
+
+ private void createColumnsAndTrackThemAll() {
+ assumeTrue(tracker.getTrackedColumns().isEmpty());
+ tracker.trackAllColumns();
+ assertTrue(tracker.getTrackedColumns().isEmpty());
+
+ Row row = sheet.createRow(0);
+ for (int column : columns) {
+ row.createCell(column);
+ }
+ // implicitly track the columns
+ tracker.updateColumnWidths(row);
+ assertEquals(columns, tracker.getTrackedColumns());
+ }
}
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java?rev=1876336&r1=1876335&r2=1876336&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheetAutoSizeColumn.java
Thu Apr 9 20:14:50 2020
@@ -337,8 +337,9 @@ public class TestSXSSFSheetAutoSizeColum
sheet.trackColumnsForAutoSizing(columns);
sheet.trackAllColumnsForAutoSizing();
-
- sheet.untrackColumnForAutoSizing(0);
+
+ boolean untracked = sheet.untrackColumnForAutoSizing(0);
+ assertTrue(untracked);
try {
sheet.autoSizeColumn(0, useMergedCells);
fail("Should not be able to auto-size an explicitly untracked
column");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]