Merge "Properly clamp the window size." into jb-ub-mail-ur10
diff --git a/src/com/android/exchange/adapter/ContactsSyncParser.java b/src/com/android/exchange/adapter/ContactsSyncParser.java
index 91143a5..c2bd70c 100644
--- a/src/com/android/exchange/adapter/ContactsSyncParser.java
+++ b/src/com/android/exchange/adapter/ContactsSyncParser.java
@@ -41,6 +41,7 @@
 import com.android.emailcommon.utility.Utility;
 import com.android.exchange.Eas;
 import com.android.exchange.service.EasContactsSyncHandler;
+import com.android.exchange.service.EasSyncHandler;
 import com.android.exchange.utility.CalendarUtilities;
 import com.android.mail.utils.LogUtils;
 
@@ -797,9 +798,8 @@
         private static final long serialVersionUID = 1L;
         private int mCount = 0;
         private int mContactBackValue = mCount;
-        // Make an array big enough for the PIM window (max items we can get)
-        private final int[] mContactIndexArray =
-            new int[EasContactsSyncHandler.PIM_WINDOW_SIZE_CONTACTS];
+        // Make an array big enough for the max possible window size.
+        private final int[] mContactIndexArray = new int[EasSyncHandler.MAX_WINDOW_SIZE];
         private int mContactIndexCount = 0;
         private ContentProviderResult[] mResults = null;
 
diff --git a/src/com/android/exchange/service/EasCalendarSyncHandler.java b/src/com/android/exchange/service/EasCalendarSyncHandler.java
index e1a4dd0..69090d2 100644
--- a/src/com/android/exchange/service/EasCalendarSyncHandler.java
+++ b/src/com/android/exchange/service/EasCalendarSyncHandler.java
@@ -231,7 +231,7 @@
             throw new IOException("Max window size reached and still no data");
         }
         setPimSyncOptions(s, Eas.FILTER_2_WEEKS,
-                windowSize > MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE);
+                windowSize < MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE);
     }
 
     /**
diff --git a/src/com/android/exchange/service/EasContactsSyncHandler.java b/src/com/android/exchange/service/EasContactsSyncHandler.java
index 0ea33e7..890d630 100644
--- a/src/com/android/exchange/service/EasContactsSyncHandler.java
+++ b/src/com/android/exchange/service/EasContactsSyncHandler.java
@@ -243,7 +243,7 @@
         if (windowSize > MAX_WINDOW_SIZE  + PIM_WINDOW_SIZE_CONTACTS) {
             throw new IOException("Max window size reached and still no data");
         }
-        setPimSyncOptions(s, null, windowSize > MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE);
+        setPimSyncOptions(s, null, windowSize < MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE);
     }
 
     /**
diff --git a/src/com/android/exchange/service/EasMailboxSyncHandler.java b/src/com/android/exchange/service/EasMailboxSyncHandler.java
index 9bb81ef..0384674 100644
--- a/src/com/android/exchange/service/EasMailboxSyncHandler.java
+++ b/src/com/android/exchange/service/EasMailboxSyncHandler.java
@@ -136,7 +136,7 @@
                 throw new IOException("Max window size reached and still no data");
             }
             s.data(Tags.SYNC_WINDOW_SIZE,
-                    String.valueOf(windowSize > MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE));
+                    String.valueOf(windowSize < MAX_WINDOW_SIZE ? windowSize : MAX_WINDOW_SIZE));
             s.start(Tags.SYNC_OPTIONS);
             // Set the lookback appropriately (EAS calls this a "filter")
             s.data(Tags.SYNC_FILTER_TYPE, getEmailFilter());