SQL Server Known Issue: Liquibase Metadata NullPointerException During 360Suite DB Initialization

SQL Server Known Issue: Liquibase Metadata NullPointerException During 360Suite DB Initialization

Environment

  • Product version(s): 360Suite
  • Third-party technology: Microsoft SQL Server
  • Database (if applicable): SQL Server collation and database permissions

Symptoms

Customers may encounter database initialization or connection validation failures in 360Suite, and users may be unable to log in (except BI Administrator in some cases).

  • Error occurs during Liquibase initialization on SQL Server.
  • Database connection test fails even when connectivity appears correct.
  • Applying VIEW_DEFINITION alone may not resolve the issue.

Steps to Reproduce

  1. Configure 360Suite with a Microsoft SQL Server database.
  2. Use a SQL Server collation that is case-sensitive or binary (for example SQL_Latin1_General_CP850_BIN2).
  3. Run database connection test from 360Suite Administration console.
  4. The process fails with a Liquibase NullPointerException-related error.

Error Message

Quote
java.lang.NullPointerException
or
Quote
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "liquibase.snapshot.CachedRow.getInt(String)" is null
or
Quote
java.lang.NullPointerException at liquibase.snapshot.jvm.ColumnSnapshotGenerator.readDataType(ColumnSnapshotGenerator.java:539)

Cause

  • Context: The issue appears during database connection in 360Suite with SQL Server.
  • Technical explanation: Two configuration points can trigger this behavior:
    • Missing or ineffective VIEW DEFINITION permissions for the SQL login.
    • SQL Server database collation is not Case Insensitive (CI). Case-sensitive or binary collations are not compatible with this metadata reading flow in this context.

Resolution

  1. Confirm VIEW DEFINITION is explicitly granted to the SQL user used by 360Suite.
  2. Confirm this permission is applied on all relevant databases involved in the setup.
  3. Verify the database collation is Case Insensitive (CI), for example Latin1_General_CI_AS.
  4. If current collation is case-sensitive or binary (for example SQL_Latin1_General_CP850_BIN2), switch to a CI collation according to your SQL Server change process.
  5. Re-run 360Suite database connection or initialization.

Option 2: Workaround

  1. If collation change cannot be done immediately, first verify and re-apply VIEW DEFINITION for the target SQL login.
  2. Validate that the same login is effectively used by 360Suite.
  3. Plan and execute migration to a CI collation as soon as possible.

Validation

After applying the configuration changes:

  1. Run the 360Suite database connection test again.
  2. Confirm initialization no longer throws Liquibase metadata NullPointerException.
  3. Confirm non-admin users can authenticate normally when applicable.

Additional Information

  • Recommended prerequisite checklist for SQL Server environments:
    • SQL login used by 360Suite has explicit VIEW_DEFINITION rights.
    • Target database collation is Case Insensitive (CI).

If the issue persists after these checks, contact support and provide:

  • Tomcat or 360Suite logs from a failing attempt.
  • SQL user used by 360Suite.
  • Current SQL Server or database collation.