pentaho/pentaho-kettle · warning · IllegalArgumentException

TransGraph.Dialog.InvalidZoomMeasurement.Message

TransGraph.Dialog.InvalidZoomMeasurement.Message

Error message

TransGraph.Dialog.InvalidZoomMeasurement.Message

What it means

JobGraph's zoom handling parses the text typed into the zoom label as a percentage. If parsing fails or the resulting magnification falls outside MIN_ZOOM..MAX_ZOOM, the previous magnification is restored, an error is logged, and an IllegalArgumentException is thrown internally to route control to the catch block that shows the 'Invalid zoom measurement' message box.

Solutions

  1. Enter a numeric zoom percentage within the allowed MIN_ZOOM–MAX_ZOOM range (e.g. '100%').
  2. Avoid non-numeric characters and stray decimal separators in the zoom field.
  3. Use the zoom drop-down presets instead of free-typing values.

Example fix

// before
zoomLabel.setText( "5000" ); // out of range
// after
zoomLabel.setText( "100%" ); // within MIN_ZOOM..MAX_ZOOM
Defensive patterns

Strategy: validation

Validate before calling

float m;
try { m = Float.parseFloat( text ) / 100; } catch ( NumberFormatException e ) { m = -1; }
boolean valid = m >= MIN_ZOOM && m <= MAX_ZOOM;
if ( !valid ) { /* revert to previousMagnification */ }

Try / catch

try {
  applyZoom( possibleText );
} catch ( Exception e ) {
  magnification = previousMagnification; // restore safe value
  // show invalid-zoom message box
}

Prevention

When it happens

Trigger: Typing a non-numeric zoom value (e.g. 'abc') or a percentage out of range (below MIN_ZOOM or above MAX_ZOOM, e.g. '5000%') into the JobGraph zoom label and pressing Enter.

Common situations: User typo such as '1oo%' or '12.3.4'; pasting a magnification value without the percent sign outside supported range; locale-confusing decimal separators like '1,5' being parsed as invalid.

Understand the failure class

Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.

Related errors


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

Appendix: source

Thrown at ui/src/main/java/org/pentaho/di/ui/spoon/job/JobGraph.java:1482

    }
  }

  /**
   * Allows for magnifying to any percentage entered by the user...
   */
  private void readMagnification() {
    float previousMagnification = magnification;
    String possibleText = zoomLabel.getText();
    possibleText = possibleText.replace( "%", "" );

    float possibleFloatMagnification;
    try {
      possibleFloatMagnification = Float.parseFloat( possibleText ) / 100;
      magnification = possibleFloatMagnification;
      if ( magnification < MIN_ZOOM || magnification > MAX_ZOOM ) {
        magnification = previousMagnification;
        log.logError( "Invalid zoom value: " + zoomLabel.getText() );
        throw new IllegalArgumentException( );
      }
      if ( zoomLabel.getText().indexOf( '%' ) < 0 ) {
        zoomLabel.setText( zoomLabel.getText().concat( "%" ) );
      }
    } catch ( Exception e ) {
      MessageBox mb = new MessageBox( shell, SWT.YES | SWT.ICON_ERROR );
      mb.setMessage( BaseMessages.getString( PKG, "TransGraph.Dialog.InvalidZoomMeasurement.Message", String.valueOf( (int) ( MIN_ZOOM * 100 ) ), String.valueOf( (int) MAX_ZOOM * 100 ) ) );
      mb.setText( BaseMessages.getString( PKG, "TransGraph.Dialog.InvalidZoomMeasurement.Title" ) );
      mb.open();
    }
    redraw();
  }

  public void keyPressed( KeyEvent e ) {

    // Delete
    if ( e.keyCode == SWT.DEL ) {
      List<JobEntryCopy> copies = jobMeta.getSelectedEntries();

View on GitHub (pinned to f3058517a1)