pentaho/pentaho-kettle · error · KettleException

LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields

Error message

LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields

What it means

The table-field lookup wraps its whole body in try/catch: any exception while connecting to the database, checking table existence, or reading table metadata (db.getTableFields) is rethrown as KettleException with the localized 'ErrorGettingFields' message, with the original exception as cause.

Solutions

  1. Inspect the nested cause exception for the real JDBC error (connection refused, auth failed, driver missing).
  2. Test the database connection in Spoon's connection dialog; fix host/port/credentials.
  3. Ensure the LucidDB JDBC driver jar is on the classpath (libext / plugins dir).
  4. Verify network connectivity (ping/telnet to the DB host:port).
Defensive patterns

Strategy: try-catch

Validate before calling

try (Database db = new Database(log, meta.getDatabaseMeta())) {
  db.connect(); // fails fast with the real JDBC error
}

Try / catch

try {
  meta.getFields(...);
} catch (KettleException e) {
  logError("Error getting fields: " + e.getCause().getMessage(), e.getCause());
  throw e;
}

Prevention

When it happens

Trigger: During getFields/SQL generation, the code enters the block where databaseMeta != null and any JDBC error occurs — connection failure, bad credentials, SQL error from checkTableExists/getTableFields — and is wrapped by this message.

Common situations: LucidDB driver missing from the classpath; wrong host/port or database down; invalid credentials; network/firewall blocking the JDBC connection while Spoon validates the step.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/2714706d7277fa11. Report an issue: GitHub.

Appendix: source

Thrown at plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java:846

      try {
        db.connect();

        if ( !Utils.isEmpty( realTableName ) ) {
          String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );

          // Check if this table exists...
          if ( db.checkTableExists( schemaTable ) ) {
            return db.getTableFields( schemaTable );
          } else {
            throw new KettleException( BaseMessages.getString(
              PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotFound" ) );
          }
        } else {
          throw new KettleException( BaseMessages.getString(
            PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotSpecified" ) );
        }
      } catch ( Exception e ) {
        throw new KettleException( BaseMessages.getString(
          PKG, "LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields" ), e );
      } finally {
        db.close();
      }
    } else {
      throw new KettleException( BaseMessages.getString(
        PKG, "LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined" ) );
    }

  }

  /**
   * @return the schemaName
   */
  public String getSchemaName() {
    return schemaName;
  }

View on GitHub (pinned to f3058517a1)