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

Reply via email to