From 6759fe77903dfdcf84353197bb6bd26cec1b4e82 Mon Sep 17 00:00:00 2001 From: Jason Height Date: Fri, 25 Aug 2006 22:24:47 +0000 Subject: [PATCH] bug 40285: Corrected index of CellIterator. In addition made CelIterator obey the Iterator contract wrt exceptions. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@436986 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/hssf/usermodel/HSSFRow.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFRow.java b/src/java/org/apache/poi/hssf/usermodel/HSSFRow.java index 8a484e454..ae994a284 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFRow.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFRow.java @@ -28,6 +28,7 @@ import org.apache.poi.hssf.record.RowRecord; import java.util.HashMap; import java.util.Iterator; +import java.util.NoSuchElementException; /** * High level representation of a row of a spreadsheet. @@ -436,7 +437,8 @@ public class HSSFRow private class CellIterator implements Iterator { - int thisId,nextId=0; + int thisId=-1; + int nextId=-1; public CellIterator() { @@ -448,6 +450,8 @@ public class HSSFRow } public Object next() { + if (!hasNext()) + throw new NoSuchElementException("At last element"); HSSFCell cell=cells[nextId]; thisId=nextId; findNext(); @@ -455,6 +459,8 @@ public class HSSFRow } public void remove() { + if (thisId == -1) + throw new IllegalStateException("remove() called before next()"); cells[thisId]=null; }