Skip to content

Commit 7870573

Browse files
committed
fix #189--handle case where pageSize=0
1 parent c208dbb commit 7870573

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/com/marklogic/client/impl/BasicPage.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ public BasicPage<T> setSize(long size) {
8181

8282
public long size() {
8383
if ( size != null ) return size.longValue();
84-
if ( hasNextPage() ) {
84+
if ( getPageSize() == 0 ) {
85+
return 0;
86+
} else if ( hasNextPage() ) {
8587
return getPageSize();
8688
} else if ((getTotalSize() % getPageSize()) == 0) {
8789
return getPageSize();
@@ -91,6 +93,7 @@ public long size() {
9193
}
9294

9395
public long getTotalPages() {
96+
if ( getPageSize() == 0 ) return 0;
9497
return (long) Math.ceil((double) getTotalSize() / (double) getPageSize());
9598
}
9699

@@ -107,17 +110,20 @@ public boolean hasPreviousPage() {
107110
}
108111

109112
public long getPageNumber() {
113+
if ( getPageSize() == 0 ) return 0;
110114
double _start = (double) start;
111115
double _pageSize = (double) getPageSize();
112116
if ( _start % _pageSize == 0 ) return new Double(_start / _pageSize).longValue();
113117
else return (long) Math.floor(_start / _pageSize) + 1;
114118
}
115119

116120
public boolean isFirstPage() {
121+
if ( getPageSize() == 0 ) return true;
117122
return getPageNumber() == 1;
118123
}
119124

120125
public boolean isLastPage() {
126+
if ( getPageSize() == 0 ) return true;
121127
return getPageNumber() == getTotalPages();
122128
}
123129
}

src/test/java/com/marklogic/client/test/PageTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,17 @@ public void testTestPage() {
5454
assertEquals("Unexpected pageNumber", 1, page.getPageNumber());
5555
assertEquals("Unexpected isFirstPage", true, page.isFirstPage());
5656
assertEquals("Unexpected isLastPage", false, page.isLastPage());
57-
57+
58+
page = new TestPage(iterator, 10, 0, 101);
59+
assertEquals("Unexpected size", 0, page.size());
60+
assertEquals("Unexpected totalSize", 101, page.getTotalSize());
61+
assertEquals("Unexpected totalPages", 0, page.getTotalPages());
62+
assertEquals("Unexpected hasContent", false, page.hasContent());
63+
assertEquals("Unexpected hasNextPage", false, page.hasNextPage());
64+
assertEquals("Unexpected pageNumber", 0, page.getPageNumber());
65+
assertEquals("Unexpected isFirstPage", true, page.isFirstPage());
66+
assertEquals("Unexpected isLastPage", true, page.isLastPage());
67+
5868
page = new TestPage(iterator, 2, 10, 100);
5969
assertEquals("Unexpected size", 10, page.size());
6070
assertEquals("Unexpected totalPages", 10, page.getTotalPages());

0 commit comments

Comments
 (0)