Reviewers: andycheng_google.com,
Description:
Fixes a bug in AbstractPager where clearing the display and resetting it
causes an NPE.
Please review this at http://gwt-code-reviews.appspot.com/1500803/
Affected files:
M user/src/com/google/gwt/user/cellview/client/AbstractPager.java
M user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java
Index: user/src/com/google/gwt/user/cellview/client/AbstractPager.java
===================================================================
--- user/src/com/google/gwt/user/cellview/client/AbstractPager.java
(revision 10462)
+++ user/src/com/google/gwt/user/cellview/client/AbstractPager.java
(working copy)
@@ -110,6 +110,7 @@
if (rowCountChangeHandler != null) {
rowCountChangeHandler.removeHandler();
rangeChangeHandler = null;
+ rowCountChangeHandler = null;
}
// Set the new display.
@@ -117,6 +118,7 @@
if (display != null) {
rangeChangeHandler = display.addRangeChangeHandler(
new RangeChangeEvent.Handler() {
+ @Override
public void onRangeChange(RangeChangeEvent event) {
if (AbstractPager.this.display != null) {
onRangeOrRowCountChanged();
@@ -125,6 +127,7 @@
});
rowCountChangeHandler = display.addRowCountChangeHandler(
new RowCountChangeEvent.Handler() {
+ @Override
public void onRowCountChange(RowCountChangeEvent event) {
if (AbstractPager.this.display != null) {
handleRowCountChange(
Index: user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java
===================================================================
--- user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java
(revision 10462)
+++ user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java
(working copy)
@@ -236,6 +236,25 @@
assertEquals(new Range(25, 20), display.getVisibleRange());
}
+ public void testDisplay() {
+ AbstractPager pager = createPager();
+ assertNull(pager.getDisplay());
+
+ // Set display.
+ HasRows display0 = new MockHasData<String>();
+ pager.setDisplay(display0);
+ assertEquals(display0, pager.getDisplay());
+
+ // Set display to null.
+ pager.setDisplay(null);
+ assertNull(pager.getDisplay());
+
+ // Set display again.
+ HasRows display1 = new MockHasData<String>();
+ pager.setDisplay(display1);
+ assertEquals(display1, pager.getDisplay());
+ }
+
public void testSetPage() {
AbstractPager pager = createPager();
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors