Repository: usergrid
Updated Branches:
  refs/heads/master 8b63aae7d -> d3e988bcb


http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/UserResourceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/UserResourceIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/UserResourceIT.java
index f8cb9d4e..af87ca5 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/UserResourceIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/UserResourceIT.java
@@ -75,7 +75,7 @@ public class UserResourceIT extends AbstractRestIT {
         usersResource = this.app().collection("users");
         userResource = this.app().collection("user");
 
-        clientSetup.refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
     }
 
     @Test
@@ -249,14 +249,14 @@ public class UserResourceIT extends AbstractRestIT {
         // same as above, but with actor partially filled out
 
         Entity entity = 
usersResource.entity(userId.toString()).activities().post(activity);
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         UUID firstActivityId = entity.getUuid();
 
         activity = new ActivityEntity("r...@rodsimpson.com", "POST", "activity 
2");
         entity = 
usersResource.entity(userId.toString()).activities().post(activity);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         UUID secondActivityId = entity.getUuid();
 
@@ -284,7 +284,7 @@ public class UserResourceIT extends AbstractRestIT {
         map.put("email", email);
 
         Entity userEntity = usersResource.post(new Entity(map));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // get the user with username property that has an email value
         Entity testUser = usersResource.entity(username).get();
@@ -315,7 +315,7 @@ public class UserResourceIT extends AbstractRestIT {
         map.put("email", email);
 
         usersResource.post(new Entity(map));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // get the user with email property value
         // get the user with username property that has an email value
@@ -339,7 +339,7 @@ public class UserResourceIT extends AbstractRestIT {
         map.put("email", email);
 
         usersResource.post(new Entity(map));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // get the user with email property value
         // get the user with username property that has an email value
@@ -409,7 +409,7 @@ public class UserResourceIT extends AbstractRestIT {
         Entity entity = usersResource.post(user);
         UUID createdId = entity.getUuid();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         Collection results = usersResource.get(new 
QueryParameters().setQuery(String.format("name = '%s'", name)));
         entity = new User(results.getResponse().getEntities().get(0));
         assertEquals(createdId, entity.getUuid());
@@ -429,13 +429,13 @@ public class UserResourceIT extends AbstractRestIT {
 
         UUID createdId = entity.getUuid();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Entity newEntity = usersResource.entity(createdId.toString()).get();
 
         userResource.entity(newEntity).delete();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Collection results = usersResource.get(
             new QueryParameters().setQuery(String.format("username = '%s'", 
username)));
@@ -460,7 +460,7 @@ public class UserResourceIT extends AbstractRestIT {
         User entity = new User(username, name, email, "password");
 
         entity = new User(usersResource.post(entity));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         UUID firstCreatedId = entity.getUuid();
         username = "username2";
@@ -470,7 +470,7 @@ public class UserResourceIT extends AbstractRestIT {
         entity = new User(username, name, email, "password");
 
         entity = new User(usersResource.post(entity));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         UUID secondCreatedId = entity.getUuid();
 
@@ -484,7 +484,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         assertEquals(secondCreatedId.toString(), conn1.getUuid().toString());
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
 
         Entity conn2 = usersResource.entity(
@@ -492,7 +492,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         assertEquals(secondCreatedId.toString(), conn2.getUuid().toString());
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Collection conn1Connections = 
usersResource.entity(firstCreatedId.toString()).connection("conn1").get();
 
@@ -542,7 +542,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         // now create a connection of "likes" between the first user and the
         // second using pluralized form
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // named entity in collection name
         Entity conn1 = 
usersResource.entity(firstCreatedId.toString()).connection("conn1", "users")
@@ -595,6 +595,7 @@ public class UserResourceIT extends AbstractRestIT {
         role = new Entity();
         role.put("name", "connectionQuerybyEmail2");
         role = this.app().collection("roles").post(role);
+        waitForQueueDrainAndRefreshIndex();
 
 
         UUID roleId2 = role.getUuid();
@@ -605,24 +606,24 @@ public class UserResourceIT extends AbstractRestIT {
         perms.put("permission", "get:/stuff/**");
         Entity perms2 = 
this.app().collection("roles").entity(roleId2.toString()).connection("permissions")
             .post(new Entity(perms));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
+
         //connect the entities where role is the root
         Entity perms3 = 
this.app().collection("roles").entity(roleId1.toString()).connection("users")
             .entity(userId.toString()).post();
-
-        // now create a connection of "likes" between the first user and the
-        // second using pluralized form
-
         assertEquals(userId.toString(), perms3.getUuid().toString());
+        waitForQueueDrainAndRefreshIndex();
 
 
+        // now create a connection of "likes" between the first user and the
+        // second using pluralized form
         //connect the second role
 
         Entity perms4 = 
this.app().collection("roles").entity(roleId2).connection("users").entity(userId).post();
-
         assertEquals(userId.toString(), perms4.getUuid().toString());
+        waitForQueueDrainAndRefreshIndex();
+
 
-        refreshIndex();
         //query the second role, it should work
         Collection userRoles = 
this.app().collection("roles").entity(roleId2).connection("users")
             .get(new 
QueryParameters().setQuery("select%20*%20where%20username%20=%20'" + email + 
"'"));
@@ -678,7 +679,7 @@ public class UserResourceIT extends AbstractRestIT {
         Entity pizzaEntity = this.app().collection("pizzas").post(pizza);
 
         UUID secondCreatedId = pizzaEntity.getUuid();
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // now create a connection of "likes" between the first user and the
         // second using pluralized form
@@ -708,7 +709,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         Entity userEntity = usersResource.post(entity);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         // attempt to log in
         Token token = this.app().token().post(new Token(username, "password"));
 
@@ -728,7 +729,7 @@ public class UserResourceIT extends AbstractRestIT {
         userEntity = usersResource.entity(username).put(userEntity);
 
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         // now see if we've updated
 
 
@@ -782,7 +783,7 @@ public class UserResourceIT extends AbstractRestIT {
                     .chainPut("pin", "1234");
 
         usersResource.post(entity);
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Collection response = usersResource.get();
         // disable the user
@@ -798,7 +799,7 @@ public class UserResourceIT extends AbstractRestIT {
     public void test_PUT_password_fail() {
         Entity entity = usersResource.post(new User("edanuff", "edanuff", 
"edan...@email.com", "sesame"));
         this.app().token().post(new Token("edanuff", "sesame"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         boolean fail = false;
         try {
             Entity changeResponse = 
usersResource.entity("edanuff").collection("password")
@@ -829,17 +830,17 @@ public class UserResourceIT extends AbstractRestIT {
     @Test
     public void test_PUT_password_ok() {
         Entity entity = usersResource.post(new User("edanuff", "edanuff", 
"edan...@email.com", "sesame"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         usersResource.entity(entity).collection("password").post(new 
ChangePasswordEntity("sesame", "sesame1"));
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         this.app().token().post(new Token("edanuff", "sesame1"));
 
         // if this was successful, we need to re-set the password for other
         // tests
         Entity changeResponse = 
usersResource.entity("edanuff").collection("password")
             .post(new ChangePasswordEntity("sesame1", "sesame"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         assertNotNull(changeResponse);
 
     }
@@ -849,14 +850,14 @@ public class UserResourceIT extends AbstractRestIT {
     public void setUserPasswordAsAdmin() throws IOException {
         usersResource.post(new User("edanuff", "edanuff", "edan...@email.com", 
"sesame"));
         String newPassword = "foofoo";
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // change the password as admin. The old password isn't required
         Entity node = usersResource.entity("edanuff").connection("password")
             .post(new ChangePasswordEntity(newPassword));
         assertNotNull(node);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         Token response = this.app().token().post(new Token("edanuff", 
newPassword));
         assertNotNull(response);
     }
@@ -899,7 +900,7 @@ public class UserResourceIT extends AbstractRestIT {
     public void testChangePassordToInvalidValue() {
 
         Entity entity = usersResource.post(new User("edanuff", "edanuff", 
"edan...@email.com", "sesame"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         try {
             usersResource.entity(entity).collection("password").post(new 
ChangePasswordEntity("sesame", "abc"));
@@ -930,12 +931,12 @@ public class UserResourceIT extends AbstractRestIT {
         this.app().collection("roles").post(role);
         // check it
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         // add Role
 
         role = 
usersResource.entity(createdId).collection("roles").entity(roleName).post();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         // check it
         assertNotNull(role);
         assertNotNull(role.get("name"));
@@ -966,7 +967,7 @@ public class UserResourceIT extends AbstractRestIT {
     public void revokeToken() throws Exception {
 
         this.app().collection("users").post(new User("edanuff", "edanuff", 
"edan...@email.com", "sesame"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         Token token1 = this.app().token().post(new Token("edanuff", "sesame"));
         Token token2 = this.app().token().post(new Token("edanuff", "sesame"));
 
@@ -984,7 +985,7 @@ public class UserResourceIT extends AbstractRestIT {
         this.app().token().setToken(adminToken);
 
         usersResource.entity("edanuff").connection("revoketokens").post(new 
Entity().chainPut("token", token1));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         // the tokens shouldn't work
 
         int status = 0;
@@ -1032,7 +1033,7 @@ public class UserResourceIT extends AbstractRestIT {
         // now revoke the tokens
         this.app().token().setToken(adminToken);
         usersResource.entity("edanuff").connection("revoketokens").post();
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // the token3 shouldn't work
 
@@ -1070,7 +1071,7 @@ public class UserResourceIT extends AbstractRestIT {
         usersResource.post(new User("test_1", "Test1 User", "tes...@test.com", 
"test123")); // client.setApiUrl(apiUrl);
         usersResource.post(new User("test_2", "Test2 User", "tes...@test.com", 
"test123")); // client.setApiUrl(apiUrl);
         usersResource.post(new User("test_3", "Test3 User", "tes...@test.com", 
"test123")); // client.setApiUrl(apiUrl);
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         //Entity appInfo = this.app().get().getResponse().getEntities().get(0);
 
@@ -1080,7 +1081,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         assertNotNull(token.getAccessToken());
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         int status = 0;
 
@@ -1123,7 +1124,7 @@ public class UserResourceIT extends AbstractRestIT {
         Entity entityConn = 
usersResource.entity(userId).connection("deactivate").post(new Entity());
 
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         try {
             this.app().token().post(new Token("test_1", "test123"));
@@ -1141,7 +1142,7 @@ public class UserResourceIT extends AbstractRestIT {
         String randomName = "user1_" + UUIDUtils.newTimeUUID().toString();
         User user = new User(randomName, randomName, randomName + 
"@apigee.com", "password");
         usersResource.post(user);
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // should update a field
         Entity response = usersResource.entity(randomName).get();
@@ -1155,7 +1156,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         response = usersResource.post(user2);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Entity response2 = usersResource.entity(randomName).get();
 
@@ -1208,7 +1209,7 @@ public class UserResourceIT extends AbstractRestIT {
 
         assertNotNull(userId);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         ql = "uuid = " + userId;
 
@@ -1223,7 +1224,7 @@ public class UserResourceIT extends AbstractRestIT {
     public void testCredentialsTransfer() throws Exception {
 
         usersResource.post(new User("test_1", "Test1 User", "tes...@test.com", 
"test123")); // client.setApiUrl(apiUrl);
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         //Entity appInfo = this.app().get().getResponse().getEntities().get(0);
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/EventsResourceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/EventsResourceIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/EventsResourceIT.java
index 965105b..315f1f5 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/EventsResourceIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/EventsResourceIT.java
@@ -57,7 +57,7 @@ public class EventsResourceIT extends AbstractRestIT {
         assertNotNull(node.getEntities());
         String advertising = node.getEntity().get("uuid").toString();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         payload = new LinkedHashMap<String, Object>();
         payload.put( "timestamp", 0 );
@@ -74,7 +74,7 @@ public class EventsResourceIT extends AbstractRestIT {
         assertNotNull(node.getEntities());
         String sales = node.getEntity().get("uuid").toString();
 
-        refreshIndex( );
+        waitForQueueDrainAndRefreshIndex( );
 
         payload = new LinkedHashMap<String, Object>();
         payload.put( "timestamp", 0 );
@@ -91,7 +91,7 @@ public class EventsResourceIT extends AbstractRestIT {
         assertNotNull(node.getEntities());
         String marketing = node.getEntity().get( "uuid" ).toString();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         String lastId = null;
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/BasicGeoTests.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/BasicGeoTests.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/BasicGeoTests.java
index f47fba0..74ad38b 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/BasicGeoTests.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/BasicGeoTests.java
@@ -109,7 +109,7 @@ public class BasicGeoTests extends AbstractRestIT {
         assertEquals( lat.toString(), 
entity.getMap("location").get("latitude").toString() );
         assertEquals( lon.toString(), 
entity.getMap("location").get("longitude").toString() );
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //2. read back that entity make sure it is accurate
         /*
@@ -144,7 +144,7 @@ public class BasicGeoTests extends AbstractRestIT {
         assertEquals( newLon.toString(), entity.get( "location" 
).get("longitude").asText() );
   */
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //4. read back the updated entity, make sure it is accurate
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/GeoPagingTest.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/GeoPagingTest.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/GeoPagingTest.java
index 91ccf38..9a1cb3c 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/GeoPagingTest.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/GeoPagingTest.java
@@ -91,7 +91,7 @@ public class GeoPagingTest extends AbstractRestIT {
         }
 
     }
-    this.refreshIndex();
+    this.waitForQueueDrainAndRefreshIndex();
     // 2. Query the groups from a nearby location, restricting the search
     //    by creation time to a single entity where created[i-1] < created[i] 
< created[i+1]
       //since this geo location is contained by an actor it needs to be 
actor.location.
@@ -150,7 +150,7 @@ public class GeoPagingTest extends AbstractRestIT {
         .map("latitude", -33.889058)
         .map("longitude", 151.124024));
     this.app().collection(collectionType).post(props2);
-    this.refreshIndex();
+    this.waitForQueueDrainAndRefreshIndex();
 
     Collection collection = this.app().collection(collectionType).get();
     assertEquals("Should return both entities", 2, 
collection.getResponse().getEntityCount());
@@ -182,7 +182,7 @@ public class GeoPagingTest extends AbstractRestIT {
       cats[i] = cat;
       this.app().collection("cats").post(cat);
     }
-    this.refreshIndex();
+    this.waitForQueueDrainAndRefreshIndex();
 
     QueryParameters params = new QueryParameters();
     for (int consistent = 0; consistent < 20; consistent++) {
@@ -229,7 +229,7 @@ public class GeoPagingTest extends AbstractRestIT {
             cats[i] = cat;
             this.app().collection("cats").post(cat);
         }
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         final QueryParameters params = new QueryParameters();
         for (int consistent = 0; consistent < 20; consistent++) {
@@ -279,6 +279,7 @@ public class GeoPagingTest extends AbstractRestIT {
         .map("latitude", -33.746369)
         .map("longitude", 150.952183));
     this.app().collection(collectionType).post(props);
+    this.waitForQueueDrainAndRefreshIndex();
 
     Entity props2 = new Entity();
     props2.put("name", "usergrid2");
@@ -286,7 +287,7 @@ public class GeoPagingTest extends AbstractRestIT {
         .map("latitude", -33.889058)
         .map("longitude", 151.124024));
     this.app().collection(collectionType).post(props2);
-    this.refreshIndex();
+    this.waitForQueueDrainAndRefreshIndex();
 
     // 2. Query from the center point to ensure that one is returned
     Collection collection = 
this.app().collection(collectionType).get(queryClose);
@@ -326,7 +327,7 @@ public class GeoPagingTest extends AbstractRestIT {
         .map("longitude", 150.952183));
     this.app().collection("users").post(props);
 
-    this.refreshIndex();
+    this.waitForQueueDrainAndRefreshIndex();
     // 2. Create a list of geo points
     List<double[]> points = new ArrayList<>();
     points.add(new double []{33.746369, -89});//Woodland, MS

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
index 7525d51..02a54da 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
@@ -21,7 +21,6 @@ import 
org.apache.usergrid.rest.test.resource.endpoints.CollectionEndpoint;
 import org.apache.usergrid.rest.test.resource.model.Collection;
 import org.apache.usergrid.rest.test.resource.model.Entity;
 import org.apache.usergrid.rest.test.resource.model.QueryParameters;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.UUID;
@@ -78,7 +77,7 @@ public class MatrixQueryTests extends AbstractRestIT {
         restaurant2 = this.app().collection("restaurants").post(restaurant2);
         restaurant3 = this.app().collection("restaurants").post(restaurant3);
         restaurant4 = this.app().collection("restaurants").post(restaurant4);
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //3. Create "likes" connections between users and restaurants
         //user 1 likes old major
@@ -91,7 +90,7 @@ public class MatrixQueryTests extends AbstractRestIT {
 
         //user 3 likes  Lola (it shouldn't appear in the results)
         
this.app().collection("users").entity(user3).connection("likes").collection("restaurants").entity(restaurant4).post();
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //4. Retrieve "likes" connections per user and ensure the correct 
restaurants are returned
         Collection user1likes = 
this.app().collection("users").entity(user1).connection("likes").get();

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
index a190526..6591713 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
@@ -246,7 +246,7 @@ public class OrderByTest extends QueryTestBase {
             }
         }
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         //2. Query without 'order by'
         String query = "select * where created > " + created;
         QueryParameters params = new QueryParameters().setQuery(query);
@@ -289,7 +289,7 @@ public class OrderByTest extends QueryTestBase {
             this.app().collection("activity").post(props);
         }
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         //2. Query a subset of the entities, specifying order and limit
         String query = "select * where created > " + 1 + " order by created 
desc";
         QueryParameters params = new 
QueryParameters().setQuery(query).setLimit(5);
@@ -334,7 +334,7 @@ public class OrderByTest extends QueryTestBase {
             
logger.info(String.valueOf(Long.parseLong(activities[0].get("created").toString())));
         }
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex(750);
 
 
         ArrayUtils.reverse(activities);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/QueryTestBase.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/QueryTestBase.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/QueryTestBase.java
index f7eb3fe..0adafef 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/QueryTestBase.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/QueryTestBase.java
@@ -65,7 +65,7 @@ public class QueryTestBase  extends AbstractRestIT {
             logger.info(entities[i].entrySet().toString());
         }
         //refresh the index so that they are immediately searchable
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         return entities;
     }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/SelectMappingsQueryTest.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/SelectMappingsQueryTest.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/SelectMappingsQueryTest.java
index 286c984..acf51c1 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/SelectMappingsQueryTest.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/SelectMappingsQueryTest.java
@@ -83,7 +83,7 @@ public class SelectMappingsQueryTest extends QueryTestBase {
             .withProp( "testProp", value )
             .withProp( "TESTPROP", otherValue);
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // testProp and TESTPROP should now have otherValue
 
@@ -110,7 +110,7 @@ public class SelectMappingsQueryTest extends QueryTestBase {
         Entity entity = new Entity()
             .withProp( "testprop", value );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // testProp and TESTPROP should now have otherValue
 
@@ -130,7 +130,7 @@ public class SelectMappingsQueryTest extends QueryTestBase {
         Entity entity = new Entity()
             .withProp( "testprop", value );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // now query this without encoding the plus symbol
         QueryParameters params = new QueryParameters()
@@ -160,13 +160,13 @@ public class SelectMappingsQueryTest extends 
QueryTestBase {
         String value = RandomStringUtils.randomAlphabetic( 20 );
         Entity entity = new Entity().withProp( "testProp", value );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // override with TESTPROP=newValue
         String newValue = RandomStringUtils.randomAlphabetic( 20 );
         entity = new Entity().withProp( "TESTPROP", newValue );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // testProp and TESTPROP should new be queryable by new value
 
@@ -193,13 +193,13 @@ public class SelectMappingsQueryTest extends 
QueryTestBase {
         String value = RandomStringUtils.randomAlphabetic( 20 );
         Entity entity = new Entity().withProp( "TESTPROP", value );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // override with testProp=newValue
         String newValue = RandomStringUtils.randomAlphabetic( 20 );
         entity = new Entity().withProp( "testProp", newValue );
         app().collection( collectionName ).post( entity );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // testProp and TESTPROP should new be queryable by new value
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/AccessTokenIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AccessTokenIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AccessTokenIT.java
index 431d224..841ac1d 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AccessTokenIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AccessTokenIT.java
@@ -153,7 +153,7 @@ public class AccessTokenIT extends AbstractRestIT {
         assertNotNull( token.getAccessToken() );
         management().token().setToken( token );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         assertNotNull( management().me().get( Token.class ) );
 
@@ -177,7 +177,7 @@ public class AccessTokenIT extends AbstractRestIT {
         assertNotNull( adminToken );
         assertNotNull( adminToken.getAccessToken() );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         assertNotNull( management().me().get( Token.class ) );
 
@@ -237,7 +237,7 @@ public class AccessTokenIT extends AbstractRestIT {
         management().token().setToken( clientSetup.getSuperuserToken() );
         management().users().user( clientSetup.getUsername() 
).revokeTokens().post(true , ApiResponse.class, null,null);
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
 
         //test that token 1 doesn't work
@@ -278,7 +278,7 @@ public class AccessTokenIT extends AbstractRestIT {
         management().token().setToken( clientSetup.getSuperuserToken() );
         management().users().user( clientSetup.getUsername() 
).revokeToken().post( false, ApiResponse.class,null,queryParameters );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
 
         //test that token 1 doesn't work

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
index f80f131..829f561 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
@@ -17,7 +17,6 @@
 
 package org.apache.usergrid.rest.management;
 
-import com.sun.jersey.api.client.UniformInterfaceException;
 import net.jcip.annotations.NotThreadSafe;
 import org.apache.commons.lang.RandomStringUtils;
 import org.apache.usergrid.management.MockImapClient;
@@ -77,7 +76,7 @@ public class AdminUsersIT extends AbstractRestIT {
         // change the password as admin. The old password isn't required
         management.users().user( username 
).password().post(Entity.class,passwordPayload);
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //Get the token using the new password
         Token adminToken = management.token().post( false, Token.class, new 
Token( username, "testPassword" ) ,null );
@@ -159,7 +158,7 @@ public class AdminUsersIT extends AbstractRestIT {
         // change the password as admin. The old password isn't required
         management.users().user( username ).password().post(Entity.class, 
passwordPayload );
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
 
         //Get the token using the new password
@@ -197,7 +196,7 @@ public class AdminUsersIT extends AbstractRestIT {
         management.token().setToken( clientSetup.getSuperuserToken());
         management.users().user( username ).password().post( passwordPayload );
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         assertNotNull( management.token().post( false, Token.class, new 
Token(username, "testPassword"), null ));
 
@@ -260,7 +259,7 @@ public class AdminUsersIT extends AbstractRestIT {
             //Send rest call to the /testProperties endpoint to persist 
property changes
             clientSetup.getRestClient().testPropertiesResource().post( 
testPropertiesPayload );
 
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             //Create organization for the admin user to be confirmed
             Organization organization = createOrgPayload( 
"testUnconfirmedAdminLogin", null );
@@ -342,7 +341,7 @@ public class AdminUsersIT extends AbstractRestIT {
 
             //Send rest call to the /testProperties endpoint to persist 
property changes
             clientSetup.getRestClient().testPropertiesResource().post( 
testPropertiesPayload );
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             Token superuserToken = management.token().post( Token.class,
                 new Token( clientSetup.getSuperuserName(), 
clientSetup.getSuperuserPassword() )  );
@@ -379,7 +378,7 @@ public class AdminUsersIT extends AbstractRestIT {
 
             //Send rest call to the /testProperties endpoint to persist 
property changes
             clientSetup.getRestClient().testPropertiesResource().post( 
testPropertiesPayload );
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             Token testToken = management().token().post(Token.class,
                 new Token( originalTestProperties.getAsString( 
PROPERTIES_TEST_ACCOUNT_ADMIN_USER_EMAIL ),
@@ -586,7 +585,7 @@ public class AdminUsersIT extends AbstractRestIT {
     public void reactivateTest() throws Exception {
         //call reactivate endpoint on default user
         clientSetup.getRestClient().management().users().user( 
clientSetup.getUsername() ).reactivate().get();
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         //Create mocked inbox and check to see if you recieved an email in the 
users inbox.
         List<Message> inbox = Mailbox.get( clientSetup.getEmail());
@@ -599,7 +598,7 @@ public class AdminUsersIT extends AbstractRestIT {
 
         // initiate password reset
         management().users().user( clientSetup.getUsername() 
).resetpw().post(new Form());
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // create mocked inbox, get password reset email and extract token
         List<Message> inbox = Mailbox.get( clientSetup.getEmail() );
@@ -630,7 +629,7 @@ public class AdminUsersIT extends AbstractRestIT {
 
         assertTrue( html.contains( "password set" ) );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
 
         html = management().users().user( clientSetup.getUsername() 
).resetpw().post( formData );
@@ -644,7 +643,7 @@ public class AdminUsersIT extends AbstractRestIT {
 
         // initiate password reset
         management().users().user( clientSetup.getUsername() 
).resetpw().post(new Form());
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // create mocked inbox, get password reset email and extract token
         List<Message> inbox = Mailbox.get( clientSetup.getEmail() );
@@ -725,7 +724,7 @@ public class AdminUsersIT extends AbstractRestIT {
         payload.put( "newpassword", passwords[1] );
         management().users().user( clientSetup.getUsername() 
).password().post( Entity.class,payload );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         payload.put( "newpassword", passwords[0] );
         payload.put( "oldpassword", passwords[1] );
@@ -747,7 +746,7 @@ public class AdminUsersIT extends AbstractRestIT {
         // request password reset
 
         management().users().user( clientSetup.getUsername() 
).resetpw().post(new Form());
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // get resetpw token from email
 
@@ -774,7 +773,7 @@ public class AdminUsersIT extends AbstractRestIT {
         String html = management().users().user( clientSetup.getUsername() 
).resetpw().getTarget().request()
             .post( javax.ws.rs.client.Entity.form(formData), String.class );
         assertTrue( html.contains( "password set" ) );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // login with new password and get token
 
@@ -797,7 +796,7 @@ public class AdminUsersIT extends AbstractRestIT {
             put("newpassword", "test");
         }};
         management().users().user( clientSetup.getUsername() 
).password().post( false, payload, null );
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         // get password and check password change time again
 
@@ -851,7 +850,7 @@ public class AdminUsersIT extends AbstractRestIT {
         //Create admin user
         management().orgs().org( clientSetup.getOrganizationName() 
).users().post(ApiResponse.class ,adminUserPayload );
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         //Retrieves the admin users
         ApiResponse adminUsers = management().orgs().org( 
clientSetup.getOrganizationName() ).users().get(ApiResponse.class);
@@ -905,7 +904,7 @@ public class AdminUsersIT extends AbstractRestIT {
             //Send rest call to the /testProperties endpoint to persist 
property changes
             clientSetup.getRestClient().testPropertiesResource().post( 
testPropertiesPayload );
 
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             //Retrieve properties and ensure that they are set correctly.
             ApiResponse apiResponse = 
clientSetup.getRestClient().testPropertiesResource().get();

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/ExportResourceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ExportResourceIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ExportResourceIT.java
index 81ff2d3..1b649d2 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ExportResourceIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ExportResourceIT.java
@@ -141,7 +141,7 @@ public class ExportResourceIT extends AbstractRestIT {
         assertNotNull( uuid );
 
         exportEntity = null;
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         try {
 
             exportEntity = management().orgs().org( 
clientSetup.getOrganizationName() )

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/ImportResourceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ImportResourceIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ImportResourceIT.java
index c390393..9c35a6c 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ImportResourceIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ImportResourceIT.java
@@ -193,7 +193,7 @@ public class ImportResourceIT extends AbstractRestIT {
         Organization orgPayload = new Organization(
             newOrgName, newOrgUsername, newOrgEmail, newOrgName, 
newOrgPassword, null);
         Organization orgCreatedResponse = 
clientSetup.getRestClient().management().orgs().post(orgPayload);
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
         assertNotNull(orgCreatedResponse);
 
 
@@ -391,8 +391,8 @@ public class ImportResourceIT extends AbstractRestIT {
 //            for ( org.apache.usergrid.persistence.Entity importedThing : 
importedThings ) {
 //                emApp1.delete( importedThing );
 //            }
-//            emApp1.refreshIndex();
-//            emApp2.refreshIndex();
+//            emApp1.waitForQueueDrainAndRefreshIndex();
+//            emApp2.waitForQueueDrainAndRefreshIndex();
 //
 //            importedThings = emApp2.getCollection(
 //                appId2, "things", null, 
Query.Level.ALL_PROPERTIES).getEntities();
@@ -438,7 +438,7 @@ public class ImportResourceIT extends AbstractRestIT {
             .addToPath(importEntity.getUuid().toString())
             .get();
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Entity importGetIncludes = this.management().orgs().org( org ).app()
             .addToPath(app)
@@ -671,7 +671,7 @@ public class ImportResourceIT extends AbstractRestIT {
             Thread.sleep(1000);
         }
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         return importEntity;
     }
@@ -697,7 +697,7 @@ public class ImportResourceIT extends AbstractRestIT {
 
         }
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
 //        // first two things are related to each other
 //        em.createConnection(new SimpleEntityRef(type, 
created.get(0).getUuid()),
@@ -705,7 +705,7 @@ public class ImportResourceIT extends AbstractRestIT {
 //        em.createConnection(new SimpleEntityRef(type, 
created.get(1).getUuid()),
 //            "related", new SimpleEntityRef(type, created.get(0).getUuid()));
 //
-//        em.refreshIndex();
+//        em.waitForQueueDrainAndRefreshIndex();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
index 635368e..0a80d73 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
@@ -213,7 +213,7 @@ public class ManagementResourceIT extends AbstractRestIT {
             users1.add( "follower" + Integer.toString( i ) );
         }
 
-        refreshIndex(  );
+        waitForQueueDrainAndRefreshIndex(  );
 
         checkFeed( "leader1", users1 );
         //try with 11
@@ -230,20 +230,20 @@ public class ManagementResourceIT extends AbstractRestIT {
 
         //create user
         createUser( leader );
-        refreshIndex(   );
+        waitForQueueDrainAndRefreshIndex(   );
 
         String preFollowContent = leader + ": pre-something to look for " + 
UUID.randomUUID().toString();
 
         addActivity( leader, leader + " " + leader + "son", preFollowContent );
-        refreshIndex(  );
+        waitForQueueDrainAndRefreshIndex(  );
 
         String lastUser = followers.get( followers.size() - 1 );
         int i = 0;
         for ( String user : followers ) {
             createUser( user );
-            refreshIndex( );
+            waitForQueueDrainAndRefreshIndex( );
             follow( user, leader );
-            refreshIndex(  );
+            waitForQueueDrainAndRefreshIndex(  );
         }
         userFeed = getUserFeed( lastUser );
         assertTrue( userFeed.size() == 1 );
@@ -254,7 +254,7 @@ public class ManagementResourceIT extends AbstractRestIT {
         String postFollowContent = leader + ": something to look for " + 
UUID.randomUUID().toString();
         addActivity( leader, leader + " " + leader + "son", postFollowContent 
);
 
-        refreshIndex(  );
+        waitForQueueDrainAndRefreshIndex(  );
 
         //check feed
         userFeed = getUserFeed( lastUser );
@@ -321,7 +321,7 @@ public class ManagementResourceIT extends AbstractRestIT {
             .post( new Application( "mgmt-org-app" ) );
 
 
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
 
         Entity appdata = apiResponse.getEntities().get(0);
         assertEquals((clientSetup.getOrganizationName() + "/mgmt-org-app")
@@ -336,7 +336,7 @@ public class ManagementResourceIT extends AbstractRestIT {
         assertEquals("Roles", roles.get("title").toString());
         assertEquals(4, roles.size());
 
-        refreshIndex(   );
+        waitForQueueDrainAndRefreshIndex(   );
 
         // GET /applications/mgmt-org-app
 
@@ -361,7 +361,7 @@ public class ManagementResourceIT extends AbstractRestIT {
     public void checkSizes() throws Exception {
         final String appname = clientSetup.getAppName();
         this.app().collection("testCollection").post(new 
Entity().chainPut("name","test"));
-        refreshIndex();
+        waitForQueueDrainAndRefreshIndex();
         Entity size = management().orgs().org( 
clientSetup.getOrganizationName() 
).app().addToPath(appname).addToPath("_size").get();
         Entity rolesSize = 
management().orgs().org(clientSetup.getOrganizationName()).app().addToPath(appname).addToPath("roles/_size").get();
         Entity collectionsSize = 
management().orgs().org(clientSetup.getOrganizationName()).app().addToPath(appname).addToPath("collections/_size").get();

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
index 2bbdaaf..ad204ae 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
@@ -68,7 +68,7 @@ public class OrganizationsIT extends AbstractRestIT {
         assertNotNull( organizationResponse );
 
 //        Thread.sleep( 1000 );
-//        this.refreshIndex();
+//        this.waitForQueueDrainAndRefreshIndex();
 
         //Creates token
         Token token =
@@ -78,7 +78,7 @@ public class OrganizationsIT extends AbstractRestIT {
 
         assertNotNull( token );
 
-        //this.refreshIndex();
+        //this.waitForQueueDrainAndRefreshIndex();
 
         //Assert that the get returns the correct org and owner.
         Organization returnedOrg = 
clientSetup.getRestClient().management().orgs().org( 
organization.getOrganization() ).get();
@@ -136,7 +136,7 @@ public class OrganizationsIT extends AbstractRestIT {
         // Create organization
         Organization organization = createOrgPayload( 
"testCreateDuplicateOrgName", null );
         Organization orgCreatedResponse = 
clientSetup.getRestClient().management().orgs().post( organization );
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         assertNotNull( orgCreatedResponse );
 
@@ -193,7 +193,7 @@ public class OrganizationsIT extends AbstractRestIT {
         //create the org/owner
         Organization orgCreatedResponse = 
clientSetup.getRestClient().management().orgs().post( organization );
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         assertNotNull( orgCreatedResponse );
 
@@ -394,7 +394,7 @@ public class OrganizationsIT extends AbstractRestIT {
         //update the organization.
         management().orgs().org( clientSetup.getOrganizationName() 
).put(orgPayload);
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         //retrieve the organization
         Organization orgResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).get();
@@ -408,7 +408,7 @@ public class OrganizationsIT extends AbstractRestIT {
         //update the organization.
         management().orgs().org( clientSetup.getOrganizationName() 
).put(orgPayload);
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
 
         orgResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).get();
 
@@ -433,7 +433,7 @@ public class OrganizationsIT extends AbstractRestIT {
         Organization orgResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).get();
 
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
         //attempt to post duplicate connection
         Entity userPostResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).users().user( clientSetup.getEmail() ).put( 
entity );
 
@@ -461,7 +461,7 @@ public class OrganizationsIT extends AbstractRestIT {
         Organization orgResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).get();
 
 
-        this.refreshIndex();
+        this.waitForQueueDrainAndRefreshIndex();
         //attempt to post duplicate connection
         try {
             Entity userPostResponse = management().orgs().org( 
clientSetup.getOrganizationName() ).users().post( Entity.class, entity );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
index 8404632..90a6919 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
@@ -170,7 +170,7 @@ public class RegistrationIT extends AbstractRestIT {
                 "changeme");
             UUID userId = node.getUuid();
 
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             String subject = "Password Reset";
 
@@ -239,7 +239,7 @@ public class RegistrationIT extends AbstractRestIT {
 
             //Disgusting data manipulation to parse the form response.
             Map adminUserPostResponse = (management().users().post( 
User.class, userForm ));
-            refreshIndex();
+            waitForQueueDrainAndRefreshIndex();
 
             Map adminDataMap = ( Map ) adminUserPostResponse.get( "data" );
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/AbstractRestIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/AbstractRestIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/AbstractRestIT.java
index 6e5e4f9..4799b0c 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/AbstractRestIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/AbstractRestIT.java
@@ -173,10 +173,12 @@ public class AbstractRestIT extends JerseyTest {
         return this.app().token().post( new Token( username, password ) );
     }
 
-    public void refreshIndex() {
-        //TODO see how we can refresh index (not async) for tests so sleep may 
not be needed
+    public void waitForQueueDrainAndRefreshIndex(int waitTimeMillis) {
+        // indexing is async, tests will need to wait for stuff to be 
processed.
+        // this sleep is slightly longer becasue distributed queueing on top 
of Cassandra can be used without and in-mem
+        // copy.  see Qakka in the persistence module
         try {
-            Thread.sleep(250); //ensure index docs are finished being sent to 
Elasticsearch by Usergrid before refresh
+            Thread.sleep(waitTimeMillis);
             clientSetup.refreshIndex();
         } catch (InterruptedException e) {
             System.out.println("Error refreshing index");
@@ -184,6 +186,10 @@ public class AbstractRestIT extends JerseyTest {
         }
     }
 
+    public void waitForQueueDrainAndRefreshIndex() {
+        waitForQueueDrainAndRefreshIndex(750);
+    }
+
 
     /**
      * Takes in the expectedStatus message and the expectedErrorMessage then 
compares it to the ClientErrorException

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/rest/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/resources/usergrid-custom-test.properties 
b/stack/rest/src/test/resources/usergrid-custom-test.properties
index 98c5640..615bedd 100644
--- a/stack/rest/src/test/resources/usergrid-custom-test.properties
+++ b/stack/rest/src/test/resources/usergrid-custom-test.properties
@@ -72,6 +72,11 @@ elasticsearch.queue_impl=DISTRIBUTED
 # Queueing Test Settings
 # Reduce the long polling time for the tests
 queue.long.polling.time.millis=50
-queue.num.actors=50
+queue.num.actors=100
 queue.sender.num.actors=100
 queue.writer.num.actors=100
+elasticsearch.worker_count=12
+elasticsearch.worker_count_utility=4
+queue.get.timeout.seconds=10
+queue.send.timeout.seconds=10
+usergrid.push.worker_count=8

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
 
b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
index 7d02360..22d7344 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/services/notifications/QueueListener.java
@@ -20,6 +20,7 @@ import com.codahale.metrics.*;
 import com.codahale.metrics.Timer;
 import com.google.inject.Injector;
 
+import org.apache.commons.lang.RandomStringUtils;
 import org.apache.usergrid.persistence.EntityManagerFactory;
 
 import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
@@ -148,7 +149,7 @@ public class QueueListener  {
             Thread.currentThread().setDaemon(true);
         }
 
-        
Thread.currentThread().setName(getClass().getSimpleName()+"_PushNotifications-"+threadNumber);
+        Thread.currentThread().setName(getClass().getSimpleName()+"_Push-"+ 
RandomStringUtils.randomAlphanumeric(4)+"-"+threadNumber);
 
         final AtomicInteger consecutiveExceptions = new AtomicInteger();
 
@@ -268,12 +269,16 @@ public class QueueListener  {
                                 if (logger.isTraceEnabled()) {
                                     logger.trace("no messages...sleep...{}", 
sleepWhenNoneFound);
                                 }
-                                Thread.sleep(sleepWhenNoneFound);
+                                try {
+                                    Thread.sleep(sleepWhenNoneFound);
+                                } catch (InterruptedException e){
+                                    // noop
+                                }
                             }
                             timerContext.stop();
                             //send to the providers
                             consecutiveExceptions.set(0);
-                        }catch (Exception ex){
+                        } catch (Exception ex){
                             logger.error("failed to dequeue",ex);
 
                             // clear the queue name cache b/c tests might have 
wiped the keyspace
@@ -286,7 +291,7 @@ public class QueueListener  {
                                 Thread.sleep(sleeptime);
                             }catch (InterruptedException ie){
                                 if (logger.isTraceEnabled()) {
-                                    logger.info("sleep interrupted");
+                                    logger.trace("sleep interrupted");
                                 }
                             }
                         }
@@ -306,7 +311,7 @@ public class QueueListener  {
             return;
         }
         for(Future future : futures){
-            future.cancel(true);
+            future.cancel(false);
         }
 
         pool.shutdownNow();

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
 
b/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
index 6b619b7..44b0139 100644
--- 
a/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
+++ 
b/stack/services/src/main/java/org/apache/usergrid/services/notifications/gcm/GCMAdapter.java
@@ -16,7 +16,6 @@
  */
 package org.apache.usergrid.services.notifications.gcm;
 
-import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.android.gcm.server.*;
 import org.apache.usergrid.persistence.entities.Notification;
@@ -99,7 +98,7 @@ public class GCMAdapter implements ProviderAdapter {
         if(!map.containsKey(priorityKey) && notification.getPriority() != 
null){
             map.put(priorityKey, notification.getPriority());
         }
-        Batch batch = getBatch( map);
+        Batch batch = getBatch( map );
         batch.add(providerId, tracker);
     }
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/ServiceApplication.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/ServiceApplication.java 
b/stack/services/src/test/java/org/apache/usergrid/ServiceApplication.java
index 89ff272..74c5c92 100644
--- a/stack/services/src/test/java/org/apache/usergrid/ServiceApplication.java
+++ b/stack/services/src/test/java/org/apache/usergrid/ServiceApplication.java
@@ -73,7 +73,7 @@ public class ServiceApplication extends CoreApplication {
         ServiceResults testRequest = testRequest( action, expectedCount, true, 
params );
 
         if ( !action.equals( ServiceAction.GET )) {
-            this.refreshIndex();
+            this.waitForQueueDrainAndRefreshIndex();
         }
 
         return testRequest;

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java 
b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
index a46bd60..60a5ba0 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
@@ -235,7 +235,7 @@ public class EmailFlowIT {
         assertNotNull( orgOwner );
 
         ApplicationInfo app = setup.getMgmtSvc().createApplication( 
orgOwner.getOrganization().getUuid(), appName );
-        this.app.refreshIndex();
+        this.app.waitForQueueDrainAndRefreshIndex();
 
         //turn on app admin approval for app users
         enableAdminApproval(app.getId());

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/management/RoleIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/management/RoleIT.java 
b/stack/services/src/test/java/org/apache/usergrid/management/RoleIT.java
index 075ee03..20d12ab 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/RoleIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/RoleIT.java
@@ -62,7 +62,7 @@ public class RoleIT {
 
         UUID applicationId = setup.getMgmtSvc().createApplication( 
organization.getUuid(), "test-app" ).getId();
         EntityManager em = setup.getEmf().getEntityManager( applicationId );
-        setup.getEntityIndex().refresh(em.getApplicationId());
+        
setup.getEntityIndex().waitForQueueDrainAndRefresh(em.getApplicationId(), 500);
 
         Map<String, Object> properties = new LinkedHashMap<String, Object>();
         properties.put( "username", "edanuff5" );
@@ -71,8 +71,7 @@ public class RoleIT {
         User user = em.create( User.ENTITY_TYPE, User.class, properties );
 
         em.createRole( "logged-in", "Logged In", 2000 );
-        setup.getEntityIndex().refresh(em.getApplicationId());
-        setup.getEntityIndex().refresh(em.getApplicationId());
+        
setup.getEntityIndex().waitForQueueDrainAndRefresh(em.getApplicationId(), 500);
         em.addUserToRole( user.getUuid(), "logged-in" );
 
         String accessToken = setup.getMgmtSvc().getAccessTokenForAppUser( 
applicationId, user.getUuid(), 0 );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/CollectionServiceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/CollectionServiceIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/services/CollectionServiceIT.java
index c071d1f..62818c2 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/CollectionServiceIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/CollectionServiceIT.java
@@ -232,7 +232,7 @@ public class CollectionServiceIT extends AbstractServiceIT {
             // ok
         }
 
-        app.refreshIndex();
+        app.waitForQueueDrainAndRefreshIndex();
         try {
             // try DELETE on cats with dogs name
             app.testRequest( ServiceAction.DELETE, 0, "cats", "Danny" );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/GroupServiceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/GroupServiceIT.java 
b/stack/services/src/test/java/org/apache/usergrid/services/GroupServiceIT.java
index d3c2436..d37bb10 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/GroupServiceIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/GroupServiceIT.java
@@ -68,13 +68,14 @@ public class GroupServiceIT extends AbstractServiceIT {
         app.createGroupRole( group.getUuid(), "admin", 0 );
         app.createGroupRole( group.getUuid(), "author", 0 );
 
-        setup.getEntityIndex().refresh(app.getId());
+        app.waitForQueueDrainAndRefreshIndex(500);
 
 
         app.grantGroupRolePermission( group.getUuid(), "admin", 
"users:access:*" );
         app.grantGroupRolePermission( group.getUuid(), "admin", 
"groups:access:*" );
         app.grantGroupRolePermission( group.getUuid(), "author", 
"assets:access:*" );
-        setup.getEntityIndex().refresh(app.getId());
+
+        app.waitForQueueDrainAndRefreshIndex(500);
 
         app.testDataRequest( ServiceAction.GET, "groups", group.getUuid(), 
"rolenames" );
         app.testDataRequest( ServiceAction.GET, "groups", group.getUuid(), 
"roles", "admin", "permissions" );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/ServiceInvocationIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/ServiceInvocationIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/services/ServiceInvocationIT.java
index 8c2be2c..81dced1 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/ServiceInvocationIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/ServiceInvocationIT.java
@@ -82,6 +82,8 @@ public class ServiceInvocationIT extends AbstractServiceIT {
 
         app.testRequest( ServiceAction.POST, 1, null, "users", "edanuff", 
"likes", cat.getUuid() );
 
+        app.waitForQueueDrainAndRefreshIndex(250);
+
         Entity restaurant = app.doCreate( "restaurant", "Brickhouse" );
 
         app.createConnection( user, "likes", restaurant );
@@ -92,6 +94,8 @@ public class ServiceInvocationIT extends AbstractServiceIT {
 
         app.testRequest( ServiceAction.POST, 1, "users", user.getUuid(), 
"connections", "likes", restaurant.getUuid() );
 
+        app.waitForQueueDrainAndRefreshIndex(250);
+
         app.testRequest( ServiceAction.GET, 1, "users", "edanuff", "likes", 
"cats" );
 
         app.testRequest( ServiceAction.GET, 3, "users", "edanuff", "likes" );
@@ -104,7 +108,7 @@ public class ServiceInvocationIT extends AbstractServiceIT {
         app.testRequest( ServiceAction.GET, 1, "users", "edanuff", "likes",
                 Query.fromQL( "select * where name='axis*'" ) );
 
-//        TODO, we don't allow this at the RESt level, why is this a test?
+//        TODO, we don't allow this at the REST level, why is this a test?
 //        app.testRequest( ServiceAction.GET, 3, null, "users", "edanuff", 
"connections" );
 
         app.put( "color", "blacknwhite" );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
index 5ea815f..c035192 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/AbstractServiceNotificationIT.java
@@ -28,7 +28,6 @@ import org.apache.usergrid.persistence.SimpleEntityRef;
 import org.apache.usergrid.persistence.entities.Notification;
 import org.apache.usergrid.persistence.entities.Receipt;
 import org.apache.usergrid.services.AbstractServiceIT;
-import org.apache.usergrid.services.notifications.gcm.NotificationsServiceIT;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,8 +51,7 @@ public abstract class AbstractServiceNotificationIT extends 
AbstractServiceIT {
             throws Exception {
         long timeout = System.currentTimeMillis() + 60000;
         while (System.currentTimeMillis() < timeout) {
-            Thread.sleep(200);
-            app.refreshIndex();
+            app.waitForQueueDrainAndRefreshIndex(200);
             notification = app.getEntityManager().get(notification.getUuid(), 
Notification.class);
             if (notification.getFinished() != null) {
                 return notification;
@@ -95,10 +93,9 @@ public abstract class AbstractServiceNotificationIT extends 
AbstractServiceIT {
             }
         }
 
-        //assertEquals(expected, receipts.size());
-        if( expected != receipts.size()){
-            logger.warn("Expected receipt count {} does not match actual count 
{}", expected, receipts.size());
-        }
+
+        assertEquals(expected, receipts.size());
+
 
         for (EntityRef receipt : receipts) {
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
index 2a757ca..1c3bbcd 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/apns/NotificationsServiceIT.java
@@ -117,7 +117,6 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
                 setup.getEntityIndex().refresh(app.getId());
 
         listener = new 
QueueListener(ns.getServiceManagerFactory(),ns.getEntityManagerFactory(), new 
Properties());
-        listener.DEFAULT_SLEEP = 200;
         listener.start();
     }
 
@@ -234,24 +233,24 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
         );
 
 
-        // verify Query for CREATED state
+        notificationWaitForComplete(notification);
+        app.waitForQueueDrainAndRefreshIndex(250);
+
+        // verify Query for FINISHED state and that the devices processed is 0
         Query query =  Query.fromEquals( "state", 
Notification.State.FINISHED.toString() );
         Results results = 
app.getEntityManager().searchCollection(app.getEntityManager().getApplicationRef(),
 "notifications", query);
-        Entity entity = results.getEntitiesMap().get(notification.getUuid());
-        assertNotNull(entity);
-
-        notificationWaitForComplete(notification);
+        notification = 
(Notification)results.getEntitiesMap().get(notification.getUuid()).toTypedEntity();
+        assertEquals(0, notification.getDeviceProcessedCount());
 
         // perform push //
 
-        //ns.getQueueManager().processBatchAndReschedule(notification, null);
         notification = app.getEntityManager().get(e.getUuid(), 
Notification.class);
 
         // verify Query for FINISHED state
         query = Query.fromEquals("state", 
Notification.State.FINISHED.toString());
         results = 
app.getEntityManager().searchCollection(app.getEntityManager().getApplicationRef(),
                 "notifications", query);
-        entity = results.getEntitiesMap().get(notification.getUuid());
+        Entity entity = results.getEntitiesMap().get(notification.getUuid());
         assertNotNull(entity);
 
         notification = (Notification) entity.toTypedEntity();
@@ -501,7 +500,7 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
     @Test
     public void oneDeviceTwoNotifiers() throws Exception {
 
-        // This test should configure 2 notifiers on a device and ensure that 
we can send to one of them
+        // This test should configure 2 notifiers on device1 and ensure that 
we can send to one of them
 
         // create a 2nd notifier //
         Object notifierName1 = "apNs2";
@@ -525,17 +524,19 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
         assertEquals(notifier2.getProvider(), PROVIDER);
         assertEquals(notifier2.getEnvironment(), environment1);
 
+
+        // Add a device token for the 2nd notifier
+        app.clear();
         String key2 = notifier2.getName() + NOTIFIER_ID_POSTFIX;
-        device1.setProperty(key2, PUSH_TOKEN);
-        app.getEntityManager().update(device1);
-        setup.getEntityIndex().refresh(app.getId()); // need to refresh the 
index after an update
+        app.put(key2, PUSH_TOKEN);
+        app.testRequest(ServiceAction.PUT, 1, "devices", device1).getEntity();
 
 
         // create push notification //
         app.clear();
         String payload = getPayload();
         Map<String, String> payloads = new HashMap<String, String>(1);
-        payloads.put(notifier.getUuid().toString(), payload);
+        payloads.put(notifierName, payload);
         app.put("payloads", payloads);
         app.put("debug",true);
 
@@ -543,14 +544,14 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
             "notifications").getEntity();
         app.testRequest(ServiceAction.GET, 1, "notifications", 
notificationEntity.getUuid());
 
-        Notification notification = 
app.getEntityManager().get(notificationEntity.getUuid(),
-                Notification.class);
-        assertEquals(
-                notification.getPayloads().get(notifier.getUuid().toString()),
-                payload);
+        Notification notification = 
app.getEntityManager().get(notificationEntity.getUuid(), Notification.class);
+        assertEquals(payload, notification.getPayloads().get(notifierName));
 
         // perform push //
         notification = notificationWaitForComplete(notification);
+
+        app.waitForQueueDrainAndRefreshIndex(2500);
+
         checkReceipts(notification, 1);
     }
 
@@ -692,6 +693,9 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
 
         // perform push //
         notification = notificationWaitForComplete(notification);
+
+        app.waitForQueueDrainAndRefreshIndex(250);
+
         checkReceipts(notification, 2);
 
         // Statistics are not accurate.  See - 
https://issues.apache.org/jira/browse/USERGRID-1207

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
----------------------------------------------------------------------
diff --git 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
index 1a9f4f7..8360009 100644
--- 
a/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
+++ 
b/stack/services/src/test/java/org/apache/usergrid/services/notifications/gcm/NotificationsServiceIT.java
@@ -62,13 +62,6 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
     private NotificationsService ns;
     private QueueListener listener;
 
-
-    @BeforeClass
-    public static void setup() {
-
-
-    }
-
     @Before
     public void before() throws Exception {
 
@@ -103,7 +96,6 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
         ns = getNotificationService();
 
         listener = new QueueListener(ns.getServiceManagerFactory(), 
ns.getEntityManagerFactory(), new Properties());
-        listener.DEFAULT_SLEEP = 200;
         listener.start();
     }
 
@@ -569,6 +561,9 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
         // wait for notification to be marked finished
         notification = notificationWaitForComplete(notification);
 
+        // receipts are created and queried, wait a bit longer for this to 
happen as indexing
+        app.waitForQueueDrainAndRefreshIndex(500);
+
         // get the receipts entity IDs
         List<EntityRef> receipts = getNotificationReceipts(notification);
         assertEquals(1, receipts.size());
@@ -635,6 +630,10 @@ public class NotificationsServiceIT extends 
AbstractServiceNotificationIT {
         notification = notificationWaitForComplete(notification);
         app.testRequest(ServiceAction.GET, 1, "notifications", e.getUuid());
 
+
+        // receipts are created and queried, wait a bit longer for this to 
happen as indexing
+        app.waitForQueueDrainAndRefreshIndex(500);
+
         // get the receipts entity IDs
         List<EntityRef> receipts = getNotificationReceipts(notification);
         assertEquals(1, receipts.size());

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d3e988bc/stack/services/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/services/src/test/resources/usergrid-custom-test.properties 
b/stack/services/src/test/resources/usergrid-custom-test.properties
index 49f8b5d..bcc8b8e 100644
--- a/stack/services/src/test/resources/usergrid-custom-test.properties
+++ b/stack/services/src/test/resources/usergrid-custom-test.properties
@@ -38,13 +38,14 @@ elasticsearch.queue_impl.resolution=true
 elasticsearch.queue_impl=DISTRIBUTED
 
 # Queueing Test Settings
-# Reduce the long polling time for the tests
-queue.long.polling.time.millis=150
-queue.num.actors=5
-queue.sender.num.actors=5
-queue.writer.num.actors=5
-elasticsearch.worker_count=2
-usergrid.push.worker_count=2
+queue.long.polling.time.millis=50
+queue.num.actors=50
+queue.sender.num.actors=50
+queue.writer.num.actors=50
+queue.get.timeout.seconds=10
+elasticsearch.worker_count=8
+elasticsearch.worker_count_utility=8
+usergrid.push.worker_count=8
 
 
 # This property is required to be set and cannot be defaulted anywhere

Reply via email to