Quantcast
Channel: Ignite Realtime : Discussion List - All Communities
Viewing all articles
Browse latest Browse all 10742

Possible bug in SQL Server setup script - Openfire 3.8.2

$
0
0

I have just installed Openfire 3.8.2 on CentOS, using an Microsoft SQL Server as the database.  The SQL Server is a windows 2008 R2 server running Microsoft SQL Server 2008 R2.  I am having no issues with the actual Openfire installation, but did notice a lot of these messages in the warn.log file:

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.

        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)

        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)

        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)

        at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)

        at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)

        at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)

        at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedState ment.java:505)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

        at java.lang.reflect.Method.invoke(Unknown Source)

        at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)

        at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)

        at $java.sql.Wrapper$$EnhancerByProxool$$6a645ac9.executeUpdate(<generated>)

        at org.jivesoftware.openfire.security.DefaultSecurityAuditProvider.logEvent(Defaul tSecurityAuditProvider.java:79)

        at org.jivesoftware.openfire.security.SecurityAuditManager.logEvent(SecurityAuditM anager.java:138)

        at org.jivesoftware.util.WebManager.logEvent(WebManager.java:138)

        at org.jivesoftware.openfire.admin.server_002drestart_jsp._jspService(server_002dr estart_jsp.java:85)

        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1359)

        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:11 8)

        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1330)

        at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1330)

        at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingF ilter.java:50)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1330)

        at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1330)

        at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)

        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1330)

        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)

        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)

        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)

        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:22 7)

        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:94 1)

        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)

        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186 )

        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875 )

        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)

        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler Collection.java:250)

        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:149)

        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)

        at org.eclipse.jetty.server.Server.handle(Server.java:349)

        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)

        at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConne ction.java:919)

        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)

        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)

        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51 )

        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.jav a:586)

        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java :44)

        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598 )

        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)

        at java.lang.Thread.run(Unknown Source)

 

To fix this, I had to drop and recreate the table ofSecurityAuditLog, but with the 'node' column supporting 'NULL'.  Now that I have done that, it works great.

 

This is a very simple fix.  I simply used Microsoft SQL Management Studio to first script recreating the table, then dropped the table, and recreated it work 'allow NULL' on the node column.  To prevent this in the first place, the 'openfire_sqlserver.sql' which comes with Openfire should be altered slightly.  This is the current excerpt of that file which creates this particular table:

 

CREATE TABLE ofSecurityAuditLog (

  msgID                 INTEGER         NOT NULL,

  username              NVARCHAR(64)    NOT NULL,

  entryStamp            BIGINT          NOT NULL,

  summary               NVARCHAR(255)   NOT NULL,

  node                  NVARCHAR(255)   NOT NULL,

  details               NTEXT,

  CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)

);

 

All that needs modifying is one word, such that the 'openfire_sqlserver.sql' file looks like this instead:

 

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)

);

 

I don't know how bugs get filed and processed, but could you put this into the queue?

 

Thanks,

- Erik


Viewing all articles
Browse latest Browse all 10742

Trending Articles