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)