pentaho/pentaho-kettle · error · KettleException

KettleException(e)

Error message

KettleException(e)

What it means

KettleException wrapping a FileSystemException thrown in JsonInput.addExtraFields() when the step tries to read the 'hidden' attribute of the current input file (data.file.isHidden()) for the configured Hidden-Field output column. The step logs 'ErrorOccurredWhileDeterminingHiddenFileProperty' and aborts the row.

Solutions

  1. Clear the 'Hidden field' output column in the step's Additional Fields settings if you don't actually need it.
  2. Check the FileSystemException cause in the log and fix file access/permissions for the underlying file.
  3. Verify the VFS provider for your source scheme is present and supported (e.g. correct vfs jar version).
  4. Test the same path with a local file to isolate whether the scheme's VFS provider lacks isHidden support.

Example fix

// before: step XML sets
<hiddenFieldName>isHidden</hiddenFieldName>
// after: remove the field if the filesystem doesn't support it
<hiddenFieldName></hiddenFieldName>
Defensive patterns

Strategy: validation

Validate before calling

// confirm the filesystem supports hidden attribute before enabling the field
FileObject f = VFS.getManager().resolveFile(path);
boolean supported = f.getFileSystem().hasCapability(Capability.GET_LAST_MODIFIED); // probe VFS capabilities for your scheme

Prevention

When it happens

Trigger: getOneOutputRow -> addExtraFields, only when meta.isHiddenField() is set to a non-empty field name AND the underlying VFS FileObject.isHidden() throws FileSystemException (unsupported filesystem provider, VFS error accessing file metadata).

Common situations: Using a filesystem provider (e.g. certain remote/VFS schemes) that does not support the hidden attribute; file deleted between listing and attribute read; VFS misconfiguration or missing provider jar.

Understand the failure class

Background: "failed to read file", EACCES, ENOENT and "could not read <path>" errors: when a program can't read a file from disk — this error's family across 49 libraries.

Related errors


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

Appendix: source

Thrown at plugins/json/core/src/main/java/org/pentaho/di/trans/steps/jsoninput/JsonInput.java:422

    // Add Extension
    if ( meta.getExtensionField() != null && meta.getExtensionField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = data.extension;
    }
    // add path
    if ( meta.getPathField() != null && meta.getPathField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = data.path;
    }
    // Add Size
    if ( meta.getSizeField() != null && meta.getSizeField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = new Long( data.size );
    }
    // add Hidden
    if ( meta.isHiddenField() != null && meta.isHiddenField().length() > 0 ) {
      try {
        outputRowData[ rowIndex++ ] = new Boolean( data.file.isHidden() );
      } catch ( FileSystemException e ) {
        logError( BaseMessages.getString( PKG, "JsonInput.Log.ErrorOccurredWhileDeterminingHiddenFileProperty" ) );
        throw new KettleException( e );
      }
    }
    // Add modification date
    if ( meta.getLastModificationDateField() != null && meta.getLastModificationDateField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = data.lastModificationDateTime;
    }
    // Add Uri
    if ( meta.getUriField() != null && meta.getUriField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = data.uriName;
    }
    // Add RootUri
    if ( meta.getRootUriField() != null && meta.getRootUriField().length() > 0 ) {
      outputRowData[ rowIndex++ ] = data.rootUriName;
    }
  }

  @Override
  public void setOutputDone() {

View on GitHub (pinned to f3058517a1)