RESOLVED - issue BATCH-1389: Thread safety in *PagingReader

Forgot to restart from middle of chunk
This commit is contained in:
dsyer
2009-09-04 14:16:14 +00:00
parent 29fb16b522
commit 0d94f6f336

View File

@@ -65,7 +65,7 @@ public abstract class AbstractPagingItemReader<T> extends AbstractItemCountingIt
public int getPage() {
return page;
}
/**
* The page size configured for this reader.
* @return the page size
@@ -104,11 +104,12 @@ public abstract class AbstractPagingItemReader<T> extends AbstractItemCountingIt
if (results == null || current.get() >= pageSize) {
doReadPage();
page++;
current.set(0);
if (current.get() >= pageSize) {
current.set(0);
}
}
}
}
int next = current.getAndIncrement();
@@ -144,8 +145,10 @@ public abstract class AbstractPagingItemReader<T> extends AbstractItemCountingIt
@Override
protected void jumpToItem(int itemIndex) throws Exception {
page = itemIndex / pageSize;
current.set(itemIndex % pageSize);
synchronized (lock) {
page = itemIndex / pageSize;
current.set(itemIndex % pageSize);
}
doJumpToPage(itemIndex);