pentaho/pentaho-kettle · error · IllegalArgumentException
MappingInput.Exception.IllegalArgumentValueRename
MappingInput.Exception.IllegalArgumentValueRename
Error message
Rename values should not be null.
What it means
setConnectorSteps() requires a non-null list of MappingValueRename entries describing how parent fields map into the sub-transformation. A null list throws an IllegalArgumentException, because data.valueRenames is later iterated unconditionally in processRow.
Solutions
- Pass an empty list (new ArrayList<>()) instead of null when no renames apply.
- Collect MappingValueRename entries from the Mapping step's field-mapping definition before calling setConnectorSteps.
- Guard the call site: only invoke after the mapping metadata has been initialized.
Example fix
// before mappingInput.setConnectorSteps(steps, null, "Mapping input"); // after mappingInput.setConnectorSteps(steps, Collections.emptyList(), "Mapping input");
Defensive patterns
Strategy: type-guard
Validate before calling
if (valueRenames == null) {
valueRenames = Collections.emptyList();
} Type guard
boolean isUsableRenames(List<MappingValueRename> renames) { return renames != null; } Try / catch
try {
mappingInput.setConnectorSteps(steps, renames, name);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("Rename values should not be null")) {
// pass Collections.emptyList() when no renames apply
}
throw e;
} Prevention
- Collect renames from MappingMeta's field-mapping definition before wiring.
- Use Collections.emptyList() as the no-rename default.
- Validate arguments with Objects.requireNonNull(valueRenames) at your own API boundary.
When it happens
Trigger: Calling setConnectorSteps(sourceSteps, null, mappingStepname), or an upstream code path that builds the rename list lazily and yields null.
Common situations: Programmatic mapping construction where the caller forgets to collect mapping-parameter renames; older API versions where the argument was optional; test code probing null handling.
Related errors
- MappingInput.Exception.IllegalArgumentSourceStep
- MappingInput.Exception.IllegalArgumentStepName
- API coding error: please specify the conversion metadata…
- Unable to verify if [] is null or not because of an error:
- API coding error: please specify the conversion metadata…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/9fbd8cf484b302a9.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/mappinginput/MappingInput.java:186
}
public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
meta = (MappingInputMeta) smi;
data = (MappingInputData) sdi;
return super.init( smi, sdi );
}
public void setConnectorSteps( StepInterface[] sourceSteps, List<MappingValueRename> valueRenames,
String mappingStepname ) {
if ( sourceSteps == null ) {
throw new IllegalArgumentException( BaseMessages
.getString( PKG, "MappingInput.Exception.IllegalArgumentSourceStep" ) );
}
if ( valueRenames == null ) {
throw new IllegalArgumentException( BaseMessages
.getString( PKG, "MappingInput.Exception.IllegalArgumentValueRename" ) );
}
if ( sourceSteps.length != 0 ) {
if ( mappingStepname == null ) {
throw new IllegalArgumentException( BaseMessages
.getString( PKG, "MappingInput.Exception.IllegalArgumentStepName" ) );
}
}
for ( StepInterface sourceStep : sourceSteps ) {
// We don't want to add the mapping-to-mapping rowset
//
if ( !sourceStep.isMapping() ) {
// OK, before we leave, make sure there is a rowset that covers the path to this target step.
// We need to create a new RowSet and add it to the Input RowSets of the target step
//View on GitHub (pinned to f3058517a1)