Fix for bug 45367 - fixed boundary case when row zero is the last row removed from the sheet

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@675218 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Josh Micich 2008-07-09 14:58:06 +00:00
parent 283c5f7c1e
commit a15f94d828
4 changed files with 24 additions and 7 deletions

View File

@ -37,6 +37,7 @@
<!-- Don't forget to update status.xml too! --> <!-- Don't forget to update status.xml too! -->
<release version="3.1.1-alpha1" date="2008-??-??"> <release version="3.1.1-alpha1" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="fix">45367 - Fixed bug when last row removed from sheet is row zero</action>
<action dev="POI-DEVELOPERS" type="fix">45348 - Tweaks to RVA formula logic</action> <action dev="POI-DEVELOPERS" type="fix">45348 - Tweaks to RVA formula logic</action>
<action dev="POI-DEVELOPERS" type="fix">45354 - Fixed recognition of named ranges within formulas</action> <action dev="POI-DEVELOPERS" type="fix">45354 - Fixed recognition of named ranges within formulas</action>
<action dev="POI-DEVELOPERS" type="fix">45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts</action> <action dev="POI-DEVELOPERS" type="fix">45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts</action>

View File

@ -34,6 +34,7 @@
<!-- Don't forget to update changes.xml too! --> <!-- Don't forget to update changes.xml too! -->
<changes> <changes>
<release version="3.1.1-alpha1" date="2008-??-??"> <release version="3.1.1-alpha1" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="fix">45367 - Fixed bug when last row removed from sheet is row zero</action>
<action dev="POI-DEVELOPERS" type="fix">45348 - Tweaks to RVA formula logic</action> <action dev="POI-DEVELOPERS" type="fix">45348 - Tweaks to RVA formula logic</action>
<action dev="POI-DEVELOPERS" type="fix">45354 - Fixed recognition of named ranges within formulas</action> <action dev="POI-DEVELOPERS" type="fix">45354 - Fixed recognition of named ranges within formulas</action>
<action dev="POI-DEVELOPERS" type="fix">45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts</action> <action dev="POI-DEVELOPERS" type="fix">45338 - Fix HSSFWorkbook to give you the same HSSFFont every time, and then fix it to find newly added fonts</action>

View File

@ -262,18 +262,19 @@ public final class HSSFSheet {
/** /**
* used internally to refresh the "last row" when the last row is removed. * used internally to refresh the "last row" when the last row is removed.
*/ */
private int findLastRow(int lastrow) {
private int findLastRow(int lastrow) if (lastrow < 1) {
{ return -1;
}
int rownum = lastrow - 1; int rownum = lastrow - 1;
HSSFRow r = getRow(rownum); HSSFRow r = getRow(rownum);
while (r == null && rownum > 0) while (r == null && rownum > 0) {
{
r = getRow(--rownum); r = getRow(--rownum);
} }
if (r == null) if (r == null) {
return -1; return -1;
}
return rownum; return rownum;
} }

View File

@ -169,6 +169,20 @@ public final class TestHSSFSheet extends TestCase {
sheet.removeRow(row); sheet.removeRow(row);
} }
public void testRemoveZeroRow() {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
HSSFRow row = sheet.createRow(0);
try {
sheet.removeRow(row);
} catch (IllegalArgumentException e) {
if (e.getMessage().equals("Invalid row number (-1) outside allowable range (0..65535)")) {
throw new AssertionFailedError("Identified bug 45367");
}
throw e;
}
}
public void testCloneSheet() { public void testCloneSheet() {
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Test Clone"); HSSFSheet sheet = workbook.createSheet("Test Clone");