pentaho/pentaho-kettle · error · KettleException

Commit size must be an integer.

Error message

Commit size must be an integer.

What it means

PaloCellOutputDialog.getInfo() parses the Commit size text field with Integer.parseInt. If the text is not a valid integer, it throws 'Commit size must be an integer.' while saving the dialog (OK -> getInfo).

Solutions

  1. Enter a plain integer (e.g. 100) in the Commit size field and press OK again.
  2. Remove decimal points, commas, currency symbols, and spaces from the field.
  3. If commit batching is not needed, enter a sensible positive integer such as 1 or 1000.

Example fix

// before
textCommitSize.setText("1,000"); // parse fails
// after
textCommitSize.setText("1000"); // plain integer
Defensive patterns

Strategy: validation

Validate before calling

String s = textCommitSize.getText().trim();
boolean ok;
try { Integer.parseInt(s); ok = true; } catch (NumberFormatException e) { ok = false; }
if (!ok) { /* fix commit size to a plain integer */ }

Prevention

When it happens

Trigger: Pressing OK when the commit size box contains an empty string, letters, decimals like '100.5', or a number with thousands separators like '1,000'.

Common situations: User clears the field intending 'default'; regional formatting with comma separators pasted into the field; stray whitespace is usually trimmed by parse but empty string fails.

Understand the failure class

Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.

Related errors


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

Appendix: source

Thrown at plugins/palo/core/src/main/java/org/pentaho/di/ui/trans/steps/palo/celloutput/PaloCellOutputDialog.java:634

    stepname = textStepName.getText();
    List<DimensionField> fields = new ArrayList<DimensionField>();

    if ( this.updateOptions.getCode( comboUpdateMode.getText() ) == "ADD"
      && this.splashOptions.getCode( comboSplashMode.getText() ) == "SET" ) {
      throw new KettleException(
        BaseMessages.getString( PKG, "PaloCellOutputDialog.UpdateSplashError",
          BaseMessages.getString( PKG, "PaloCellOutputDialog.UpdateMode" ),
          comboUpdateMode.getText(),
          BaseMessages.getString( PKG, "PaloCellOutputDialog.SplashMode" ),
          comboSplashMode.getText()
        )
      );
    }

    try {
      Integer.parseInt( this.textCommitSize.getText() );
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( PKG, "PaloCellOutputDialog.CommitSizeErrorMessage" ) );
    }

    for ( int i = 0; i < tableViewFields.table.getItemCount(); i++ ) {

      DimensionField field =
        new DimensionField( tableViewFields.table.getItem( i ).getText( 1 ), tableViewFields.table.getItem( i )
          .getText( 2 ), ""// tableViewFields.table.getItem(i).getText(3)
        );

      if ( i != tableViewFields.table.getItemCount() - 1 ) {
        // if(tableViewFields.table.getItem(i).getText(3)!="String")
        // throw new
        // KettleException("Dimension input field must be from String type");
        fields.add( field );
      } else {
        myMeta.setMeasureField( field );
      }
    }

View on GitHub (pinned to f3058517a1)