zengchao created ZOOKEEPER-4002:
-----------------------------------

             Summary: ZKAuditProvider throw NullPointerException if 
'AUDIT_ENABLE' is false
                 Key: ZOOKEEPER-4002
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4002
             Project: ZooKeeper
          Issue Type: Bug
            Reporter: zengchao


When other place call ZKAuditProvider.log(...) ,it will  throw a 
NullPointerException  if 'AUDIT_ENABLE' is false. if 'AUDIT_ENABLE' is false, 
the static block have not instance 'auditLogger',so when we call log(...),we 
need to check if 'AUDIT_ENABLE' is true

 
{code:java}
static {
    auditEnabled = Boolean.getBoolean(AUDIT_ENABLE);
    if (auditEnabled) {
        //initialise only when audit logging is enabled
        auditLogger = getAuditLogger();
        LOG.info("ZooKeeper audit is enabled.");
    } else {
        LOG.info("ZooKeeper audit is disabled.");
    }
}
public static void log(String user, String operation, String znode, String acl,
                       String createMode, String session, String ip, Result 
result) {
    auditLogger.logAuditEvent(createLogEvent(user, operation, znode, acl, 
createMode, session, ip, result));
}
{code}
Change to:
{code:java}
public static void log(String user, String operation, String znode, String acl,
                       String createMode, String session, String ip, Result 
result) {
    if (isAuditEnabled()) {
        auditLogger.logAuditEvent(createLogEvent(user, operation, znode, acl, 
createMode, session, ip, result));
    }
}
{code}
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to