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
- Inspect the nested cause exception for the real JDBC error (connection refused, auth failed, driver missing).
- Test the database connection in Spoon's connection dialog; fix host/port/credentials.
- Ensure the LucidDB JDBC driver jar is on the classpath (libext / plugins dir).
- 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
- Test the DB connection in the connection dialog before configuring the step.
- Place the LucidDB JDBC driver jar in the correct lib/plugin directory.
- Check network/firewall access to the DB host from the Pentaho server.
- Rotate/verify credentials after environment changes.
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
- Database.Exception.EmptyConnectionError
- DatabaseJoinMeta.Exception.ErrorObtainingFields
- Dynamic driver ' ' failed to connect to URL
- DynamicSQLRowMeta.Exception.ErrorObtainingFields
- Error evaluating Internet address value metadata
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)