{"record":{"id":"d7b77e4f016a3188","repo":"pentaho/pentaho-kettle","slug":"exception-reading-line-of-data","errorCode":null,"errorMessage":"Exception reading line of data","messagePattern":"Exception reading line of data","errorType":"exception","errorClass":"KettleFileException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java","lineNumber":676,"sourceCode":"\n      // Optionally add the current filename to the mix as well...\n      //\n      if ( meta.isIncludingFilename() && !Utils.isEmpty( meta.getFilenameField() ) ) {\n        if ( meta.isLazyConversionActive() ) {\n          outputRowData[data.filenameFieldIndex] = data.binaryFilename;\n        } else {\n          outputRowData[data.filenameFieldIndex] = data.filenames[data.filenr - 1];\n        }\n      }\n\n      if ( data.isAddingRowNumber ) {\n        outputRowData[data.rownumFieldIndex] = new Long( data.rowNumber++ );\n      }\n\n      incrementLinesInput();\n      return outputRowData;\n    } catch ( Exception e ) {\n      throw new KettleFileException( \"Exception reading line of data\", e );\n    }\n\n  }\n\n  public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {\n    meta = (ParGzipCsvInputMeta) smi;\n    data = (ParGzipCsvInputData) sdi;\n\n    if ( super.init( smi, sdi ) ) {\n\n      data.bufferSize = Integer.parseInt( environmentSubstitute( meta.getBufferSize() ) );\n      data.byteBuffer = new byte[] {}; // empty\n\n      // If the step doesn't have any previous steps, we just get the filename.\n      // Otherwise, we'll grab the list of filenames later...\n      //\n      if ( getTransMeta().findNrPrevSteps( getStepMeta() ) == 0 ) {\n        String filename = environmentSubstitute( meta.getFilename() );","sourceCodeStart":658,"sourceCodeEnd":694,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java#L658-L694","documentation":"Wrapper error in ParGzipCsvInput.readOneRow: parsing one line of the gzip CSV block failed — corrupt data, unexpected end of block, or conversion issues while assembling outputRowData (filename injection, row number). The original exception is chained as the cause.","triggerScenarios":"Thrown at engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java:676 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the input file for corrupted rows or encoding mismatches","Verify the field definitions (delimiters, formats) match the actual data","Inspect the chained cause for the precise parse or conversion failure"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}