{"record":{"id":"c62d395a26d7f1ec","repo":"pentaho/pentaho-kettle","slug":"cubeinputmeta-exception-unabletoloadstepinfo","errorCode":"CubeInputMeta.Exception.UnableToLoadStepInfo","errorMessage":"CubeInputMeta.Exception.UnableToLoadStepInfo","messagePattern":"CubeInputMeta\\.Exception\\.UnableToLoadStepInfo","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/cubeinput/CubeInputMeta.java","lineNumber":144,"sourceCode":"   *          The addfilenameresult to set.\n   */\n  public void setAddResultFile( boolean addfilenameresult ) {\n    this.addfilenameresult = addfilenameresult;\n  }\n\n  @Override public Object clone() {\n    CubeInputMeta retval = (CubeInputMeta) super.clone();\n    return retval;\n  }\n\n  private void readData( Node stepnode ) throws KettleXMLException {\n    try {\n      filename = XMLHandler.getTagValue( stepnode, \"file\", \"name\" );\n      rowLimit = XMLHandler.getTagValue( stepnode, \"limit\" );\n      addfilenameresult = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( stepnode, \"addfilenameresult\" ) );\n\n    } catch ( Exception e ) {\n      throw new KettleXMLException(\n        BaseMessages.getString( PKG, \"CubeInputMeta.Exception.UnableToLoadStepInfo\" ), e );\n    }\n  }\n\n  @Override public void setDefault() {\n    filename = \"file\";\n    rowLimit = \"0\";\n    addfilenameresult = false;\n  }\n\n  @Override public void getFields( Bowl bowl, RowMetaInterface r, String name, RowMetaInterface[] info, StepMeta nextStep,\n                                   VariableSpace space, Repository repository,\n                                   IMetaStore metaStore ) throws KettleStepException {\n    GZIPInputStream fis = null;\n    DataInputStream dis = null;\n    try {\n      InputStream is = KettleVFS.getInstance( bowl ).getInputStream( space.environmentSubstitute( filename ), space );\n      fis = new GZIPInputStream( is );","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/cubeinput/CubeInputMeta.java#L126-L162","documentation":"CubeInputMeta.readData parses the step's XML definition (file name, row limit, add-to-result flag). If any XMLHandler access throws, it wraps the cause in this KettleXMLException indicating the step info could not be loaded from XML.","triggerScenarios":"loadXML encounters a malformed stepnode subtree — missing/malformed <file><name> or <limit> tags, or corrupted transformation XML.","commonSituations":"Hand-edited .ktr files; transformations exported from newer PDI versions parsed by older ones; truncated XML files.","solutions":["Fix or regenerate the transformation XML so the CubeInput step node contains <file><name> and <limit> tags.","Re-save the transformation from Spoon to produce well-formed XML.","Check the root cause (the wrapped exception) for the exact XML parsing problem."],"exampleFix":"// before\n<step><type>CubeInput</type></step>\n// after\n<step><type>CubeInput</type><file><name>data.cube</name></file><limit>0</limit></step>","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  meta.loadXML( stepnode, databases, metaStore );\n} catch ( KettleXMLException e ) {\n  logError( \"CubeInput step XML invalid, re-save transformation in Spoon: \" + e.getMessage(), e );\n}","preventionTips":["Avoid hand-editing .ktr XML; use Spoon.","Validate XML against the PDI schema when generating it programmatically.","Keep transformation files complete and untruncated in version control."],"tags":["kettle","pdi","xml-parse","serialization"],"backgroundTag":"xml-parse-error","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"}