Tests use a different injector, clear the queue name cache using other means.
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventServiceImpl.java
index 66b527b..412a173 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventServiceImpl.java
@@ -875,6 +875,9 @@
catch ( Throwable t ) {
final long sleepTime = indexProcessorFig.getFailureRetryTime();
+ // there might be an error here during tests, just clean the cache
+ queue.clearQueueNameCache();
+
logger.error( "Failed to dequeue. Sleeping for {} milliseconds", sleepTime, t );
if ( drainList != null ) {
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/CoreSchemaManager.java b/stack/core/src/test/java/org/apache/usergrid/persistence/CoreSchemaManager.java
index 34c29ac..f57aea2 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/CoreSchemaManager.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/CoreSchemaManager.java
@@ -91,8 +91,6 @@
//swallow if it just doesn't exist
}
logger.info( "keyspaces dropped" );
- SpringResource.getInstance().getBean( Injector.class )
- .getInstance( LegacyQueueManager.class ).clearQueueNameCache();
logger.info( "dropping indices" );
final EsProvider provider =
SpringResource.getInstance().getBean( Injector.class ).getInstance( EsProvider.class );
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QakkaQueueManager.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QakkaQueueManager.java
index 264e99c..8887584 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QakkaQueueManager.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/impl/QakkaQueueManager.java
@@ -59,6 +59,8 @@
this.queueMessageManager = queueMessageManager;
this.regions = regions;
this.queueNames = new HashSet<>();
+
+ createQueueIfNecessary();
}
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 796450b..7d02360 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
@@ -275,6 +275,9 @@
consecutiveExceptions.set(0);
}catch (Exception ex){
logger.error("failed to dequeue",ex);
+
+ // clear the queue name cache b/c tests might have wiped the keyspace
+ legacyQueueManager.clearQueueNameCache();
try {
long sleeptime = sleepWhenNoneFound*consecutiveExceptions.incrementAndGet();
long maxSleep = 15000;