pentaho/pentaho-kettle · error · InvocationTargetException
AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception
AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception
Error message
AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception
What it means
AnalyseImpactProgressDialog runs transMeta.analyseImpact(...) inside a progress-monitor runnable. Any exception during impact analysis is wrapped in an InvocationTargetException with localized message AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception; the impact list is cleared and impactHasRun set to false.
Solutions
- Read e.toString() embedded in the message to identify which step failed impact analysis.
- Verify all field and table references in the transformation before running impact analysis.
- Disable or fix the offending step and re-run the SQL generation dialog.
- Update the step plugin if the vendor fixed impact analysis for your database dialect.
Example fix
// before // running analyseImpact with a step whose input fields are unresolved // after // run transMeta.checkSteps(remarks, ...) first and fix reported errors, then analyseImpact
Defensive patterns
Strategy: try-catch
Validate before calling
List<CheckResultInterface> remarks = new ArrayList<>(); transMeta.checkSteps(remarks, false, null, new Variables(), null, null); boolean hasErrors = remarks.stream().anyMatch(r -> r.getType() == CheckResultInterface.TYPE_RESULT_ERROR); // only run analyseImpact when !hasErrors
Try / catch
try {
new AnalyseImpactProgressDialog(shell, listener, transMeta, impact).open();
} catch (Exception e) {
// message embeds e.toString() of the underlying analysis failure
log.error("Impact analysis failed: ", e);
} Prevention
- Verify the transformation before running impact analysis.
- Avoid unsupported databases/dialects in impact analysis.
- Keep step plugins updated.
When it happens
Trigger: Checking 'Analyse impact' in the transformation SQL dialog and transMeta.analyseImpact throws because a step's impact analysis fails: invalid field/table references, unsupported database dialect, or a step plugin throwing during impact computation.
Common situations: Steps referencing non-existent table fields; database dialects without impact-analysis support; third-party step plugins that do not implement analyseImpact correctly.
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
- GetSQLProgressDialog.RuntimeError.UnableToGenerateSQL.Exception
- AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransformation.Exception
- GetJobSQLProgressDialog.RuntimeError.UnableToGenerateSQL.Exception
- AccessInputMeta.Exception.ErrorSavingToRepository
- AccessInputMeta.Exception.FileDoesNotExist
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/592f1abee99add19.
Report an issue: GitHub.
Appendix: source
Thrown at ui/src/main/java/org/pentaho/di/ui/spoon/dialog/AnalyseImpactProgressDialog.java:66
*/
public AnalyseImpactProgressDialog( Shell shell, TransMeta transMeta, List<DatabaseImpact> impact ) {
this.shell = shell;
this.transMeta = transMeta;
this.impact = impact;
}
public boolean open() {
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
try {
impact.clear(); // Start with a clean slate!!
transMeta.analyseImpact( impact, new ProgressMonitorAdapter( monitor ) );
impactHasRun = true;
} catch ( Exception e ) {
impact.clear();
impactHasRun = false;
// Problem encountered generating impact list: {0}
throw new InvocationTargetException( e, BaseMessages.getString(
PKG, "AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception", e.toString() ) );
}
}
};
try {
ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
pmd.run( true, true, op );
} catch ( InvocationTargetException e ) {
new ErrorDialog( shell,
BaseMessages.getString( PKG, "AnalyseImpactProgressDialog.Dialog.UnableToAnalyzeImpact.Title" ),
BaseMessages.getString( PKG, "AnalyseImpactProgressDialog.Dialog.UnableToAnalyzeImpact.Messages" ), e );
} catch ( InterruptedException e ) {
new ErrorDialog( shell,
BaseMessages.getString( PKG, "AnalyseImpactProgressDialog.Dialog.UnableToAnalyzeImpact.Title" ),
BaseMessages.getString( PKG, "AnalyseImpactProgressDialog.Dialog.UnableToAnalyzeImpact.Messages" ), e );
}
View on GitHub (pinned to f3058517a1)