RANGER-4332: updated AuditBatchQueue.log() to block instead of throwing 'Queue full' exception
diff --git a/agents-audit/src/main/java/org/apache/ranger/audit/queue/AuditBatchQueue.java b/agents-audit/src/main/java/org/apache/ranger/audit/queue/AuditBatchQueue.java
index d9cd52b..afa2879 100644
--- a/agents-audit/src/main/java/org/apache/ranger/audit/queue/AuditBatchQueue.java
+++ b/agents-audit/src/main/java/org/apache/ranger/audit/queue/AuditBatchQueue.java
@@ -56,8 +56,13 @@ public AuditBatchQueue(AuditHandler consumer) {
*/
@Override
public boolean log(AuditEventBase event) {
- // Add to batchQueue. Block if full
- queue.add(event);
+ try {
+ // Add to batchQueue. Block if full
+ queue.put(event);
+ } catch (InterruptedException ex) {
+ throw new RuntimeException(ex);
+ }
+
return true;
}
diff --git a/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java b/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
index d30854b..c62fdd8 100644
--- a/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
+++ b/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
@@ -255,7 +255,7 @@ public void testAuditBatchQueueBySize() {
int batchSize = messageToSend / 3;
int expectedBatchSize = batchSize
+ (batchSize * 3 < messageToSend ? 1 : 0);
- int queueSize = messageToSend * 2;
+ int queueSize = batchSize * 2;
int intervalMS = messageToSend * 100; // Deliberately big interval
Properties props = new Properties();
props.put(basePropName + "." + AuditQueue.PROP_BATCH_SIZE, ""