Index: src/main/java/org/displaytag/pagination/SmartListHelper.java =================================================================== RCS file: /cvsroot/displaytag/displaytag/src/main/java/org/displaytag/pagination/SmartListHelper.java,v retrieving revision 1.21 diff -u -r1.21 SmartListHelper.java --- src/main/java/org/displaytag/pagination/SmartListHelper.java 11 Sep 2005 19:01:39 -0000 1.21 +++ src/main/java/org/displaytag/pagination/SmartListHelper.java 15 Mar 2006 19:24:42 -0000 @@ -157,14 +157,7 @@ */ protected int getFirstIndexForPage(int pageNumber) { - if (this.partialList) - { - return 0; - } - else - { - return (pageNumber - 1) * this.pageSize; - } + return (pageNumber - 1) * this.pageSize; } /** @@ -174,19 +167,11 @@ */ protected int getLastIndexForPage(int pageNumber) { - if (this.partialList) - { - // return the min of pageSize or list size on the off chance they gave us more data than pageSize allows - return Math.min(this.pageSize - 1, this.fullList.size() - 1); - } - else - { - int firstIndex = getFirstIndexForPage(pageNumber); - int pageIndex = this.pageSize - 1; - int lastIndex = this.fullListSize - 1; + int firstIndex = getFirstIndexForPage(pageNumber); + int pageIndex = this.pageSize - 1; + int lastIndex = this.fullListSize - 1; - return Math.min(firstIndex + pageIndex, lastIndex); - } + return Math.min(firstIndex + pageIndex, lastIndex); } /** @@ -196,7 +181,6 @@ */ public List getListForCurrentPage() { - return getListForPage(this.currentPage); } @@ -216,6 +200,14 @@ int firstIndex = getFirstIndexForPage(pageNumber); int lastIndex = getLastIndexForPage(pageNumber); + + if (this.partialList) + { + firstIndex = 0; + //use the min of pageSize or list size on the off chance they gave us more data than pageSize allows + lastIndex = Math.min(this.pageSize - 1, this.fullList.size() - 1); + } + return this.fullList.subList(firstIndex, lastIndex + 1); }