This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.7
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.7 by this push:
new aaaef8fd55 RANGER-5153: fix for intermittent unit test failure in
RangerJSONAuditWriterTest (#536)
aaaef8fd55 is described below
commit aaaef8fd554c48cbde9528c64891cfb5f9978bf3
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Fri Feb 21 20:11:41 2025 -0800
RANGER-5153: fix for intermittent unit test failure in
RangerJSONAuditWriterTest (#536)
(cherry picked from commit 324d5dbcaac0b9a5147c7f2d72c18cffd70b7b03)
---
.../ranger/audit/utils/AbstractRangerAuditWriter.java | 2 +-
.../ranger/audit/utils/RangerJSONAuditWriter.java | 17 +++++++++++++----
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/AbstractRangerAuditWriter.java
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/AbstractRangerAuditWriter.java
index dda74018eb..b11bbd73a4 100644
---
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/AbstractRangerAuditWriter.java
+++
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/AbstractRangerAuditWriter.java
@@ -50,7 +50,7 @@ public abstract class AbstractRangerAuditWriter implements
RangerAuditWriter {
public FileSystem fileSystem
= null;
public Map<String, String> auditConfigs
= null;
public Path auditPath
= null;
- public PrintWriter logWriter = null;
+ public volatile PrintWriter logWriter = null;
public RollingTimeUtil rollingTimeUtil = null;
public String auditProviderName
= null;
public String fullPath
= null;
diff --git
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/RangerJSONAuditWriter.java
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/RangerJSONAuditWriter.java
index 747b8f663e..b4b2f18e81 100644
---
a/agents-audit/src/main/java/org/apache/ranger/audit/utils/RangerJSONAuditWriter.java
+++
b/agents-audit/src/main/java/org/apache/ranger/audit/utils/RangerJSONAuditWriter.java
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.commons.collections.CollectionUtils;
import org.apache.ranger.audit.provider.MiscUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,15 +91,23 @@ synchronized public boolean logJSON(final
Collection<String> events) throws Exce
out = MiscUtil.executePrivilegedAction(new
PrivilegedExceptionAction<PrintWriter>() {
@Override
public PrintWriter run() throws Exception {
- PrintWriter out = getLogFileStream();
- for (String event : events) {
- out.println(event);
+ PrintWriter out = null;
+
+ if (CollectionUtils.isEmpty(events)) {
+ closeFileIfNeeded();
+ } else {
+ out = getLogFileStream();
+
+ for (String event : events) {
+ out.println(event);
+ }
}
+
return out;
};
});
// flush and check the stream for errors
- if (out.checkError()) {
+ if (out != null && out.checkError()) {
// In theory, this count may NOT be accurate as part of the
messages may have been successfully written.
// However, in practice, since client does buffering, either
all or none would succeed.
logger.error("Stream encountered errors while writing audits
to HDFS!");