pentaho/pentaho-kettle · error · KettleException
CheckSum.Error.UnknownEvaluationMethod
Error message
CheckSum.Error.UnknownEvaluationMethod
What it means
initializeFieldConverters throws this when meta.getEvaluationMethod() is not one of the known CheckSumMeta evaluation methods (result field string / native string conversion). The switch falls through to default and wraps the unknown value in a KettleException.
Solutions
- Open the CheckSum step dialog and re-select the 'result field' type (string vs compatible) so the evaluation method is set to a valid constant
- Inspect the stored metadata value of evaluation method and map it to a CheckSumMeta.EVALUATION_METHOD_* constant
- Use CheckSumMeta constants (not raw literals) when building StepMeta in code
- Check plugin/core version consistency between the repository metadata and the running Pentaho version
Example fix
// before
meta.setEvaluationMethod("native");
// after
meta.setEvaluationMethod(CheckSumMeta.EVALUATION_METHOD_NATIVE_STRINGS); Defensive patterns
Strategy: validation
Validate before calling
int m = meta.getEvaluationMethod();
if (m != CheckSumMeta.EVALUATION_METHOD_FIELD && m != CheckSumMeta.EVALUATION_METHOD_NATIVE_STRINGS) {
throw new IllegalArgumentException("Unknown evaluation method: " + m);
} Try / catch
catch (KettleException e) { if (e.getMessage().contains("UnknownEvaluationMethod")) { reset step meta to defaults; } } Prevention
- Build metadata with CheckSumMeta constants, not literals
- Avoid editing .ktr XML by hand
- Keep Pentaho client and server/plugin versions aligned
When it happens
Trigger: processRow -> initializeFieldConverters where meta.getEvaluationMethod() returns a value outside CheckSumMeta.EVALUATION_METHOD_* constants, typically from hand-edited or version-mismatched transformation XML/repository metadata.
Common situations: Editing the .ktr XML and typing an evaluation-method string manually; loading a transformation produced by a newer/older plugin version with a renamed constant; programmatic step-meta construction with a wrong int/string value.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- BaseStreamStepMeta.CheckResult.ResultStepMissing
- CheckSum.Error.Digest
- CheckSum.Error.UnknownChecksumType
- CheckSum.Log.CanNotFindField
- CombinationLookup.Log.UnexpectedError
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/6e0fcc88ec21ac97.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/checksum/CheckSum.java:213
throw new KettleException( BaseMessages.getString( PKG, "CheckSum.Error.Digest" ), e );
}
}
private void initializeFieldConverters( RowMetaInterface inputRowMeta, int[] fieldIndexMapping ) throws KettleException {
data.fieldConverters = new FieldToBytesConverter[ fieldIndexMapping.length ];
for ( int i = 0; i < fieldIndexMapping.length; i++ ) {
switch ( meta.getEvaluationMethod() ) {
case CheckSumMeta.EVALUATION_METHOD_BYTES:
data.fieldConverters[ i ] = new BytesToBytesConverter( inputRowMeta, fieldIndexMapping[ i ] );
break;
case CheckSumMeta.EVALUATION_METHOD_PENTAHO_STRINGS:
data.fieldConverters[ i ] = new PentahoStringsToBytesConverter( inputRowMeta, fieldIndexMapping[ i ] );
break;
case CheckSumMeta.EVALUATION_METHOD_NATIVE_STRINGS:
data.fieldConverters[ i ] = new NativeStringsToBytesConverter( inputRowMeta, fieldIndexMapping[ i ] );
break;
default:
throw new KettleException(
BaseMessages.getString( PKG, "CheckSum.Error.UnknownEvaluationMethod", meta.getEvaluationMethod() ) );
}
}
}
private static String getStringFromBytes( byte[] bytes ) {
StringBuilder sb = new StringBuilder();
for ( int i = 0; i < bytes.length; i++ ) {
byte b = bytes[i];
sb.append( 0x00FF & b );
if ( i + 1 < bytes.length ) {
sb.append( "-" );
}
}
return sb.toString();
}
public String byteToHexEncode_compatible( byte[] in ) {View on GitHub (pinned to f3058517a1)