Node column in ofSecurityAuditLog table should accept NULL entries

Description

After installing Openfire with MSSQL a user gets such messages in warn.log:

2013.08.13 14:11:07 org.jivesoftware.openfire.security.DefaultSecurityAuditProvider - Error trying to insert a new row in ofSecurityAuditLog:
java.sql.SQLException: Cannot insert the value NULL into column 'node', table 'openfire-predev.dbo.ofSecurityAuditLog'; column does not allow nulls. INSERT fails.

to fix this openfire_sqlserver.sql should be changed to this:

CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NULL,
details NTEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);

Environment

MSSQL

Activity

Show:
Tom Evans
April 4, 2014, 10:39 PM

Assign a default host value (127.0.0.1) if the OS does not provide one

Tom Evans
April 4, 2014, 9:46 PM

This one has been sitting around for a while. Looking closer, it seems to me that the audit record needs a non-null host name (or "node"). I have a few changes pending to hopefully clean this up.

Bob Stine
January 22, 2014, 5:32 PM

I see many occurrences of the same error message from an OpenFire instance installed on CentOS, running MySQL:

2014.01.22 12:14:54 org.jivesoftware.openfire.security.DefaultSecurityAuditProvider - Error trying to insert a new row in ofSecurityAuditLog:
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'node' cannot be null
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)

wroot
August 14, 2013, 7:57 AM

Assigning to Tom as this probably is related to clustering (nodes?)

Fixed

Assignee

Tom Evans

Reporter

wroot