{"record":{"id":"c33d24439e8dd084","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-step-info-from-xml-palocellinputmeta","errorCode":null,"errorMessage":"Unable to load step info from XML","messagePattern":"Unable to load step info from XML","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputMeta.java","lineNumber":121,"sourceCode":"      String cubeMeasureName = XMLHandler.getTagValue( stepnode, \"cubemeasurename\" );\n      String cubeMeasureType = XMLHandler.getTagValue( stepnode, \"cubemeasuretype\" );\n      this.cubeMeasure = new DimensionField( \"Measure\", cubeMeasureName, cubeMeasureType );\n\n      this.fields = new ArrayList<DimensionField>();\n\n      Node levels = XMLHandler.getSubNode( stepnode, \"fields\" );\n      int nrLevels = XMLHandler.countNodes( levels, \"field\" );\n\n      for ( int i = 0; i < nrLevels; i++ ) {\n        Node fnode = XMLHandler.getSubNodeByNr( levels, \"field\", i );\n\n        String dimensionName = XMLHandler.getTagValue( fnode, \"dimensionname\" );\n        String fieldName = XMLHandler.getTagValue( fnode, \"fieldname\" );\n        String fieldType = XMLHandler.getTagValue( fnode, \"fieldtype\" );\n        this.fields.add( new DimensionField( dimensionName, fieldName, fieldType ) );\n      }\n    } catch ( Exception e ) {\n      throw new KettleXMLException( \"Unable to load step info from XML\", e );\n    }\n  }\n\n  @Override\n  public void setDefault() {\n  }\n\n  @Override\n  public void getFields( Bowl bowl, final RowMetaInterface row, final String origin, final RowMetaInterface[] info,\n      final StepMeta nextStep, final VariableSpace space, Repository repository, IMetaStore metaStore )\n    throws KettleStepException {\n    if ( databaseMeta == null ) {\n      throw new KettleStepException( \"There is no Palo database server connection defined\" );\n    }\n    final PaloHelper helper = new PaloHelper( databaseMeta, DefaultLogLevel.getLogLevel() );\n    try {\n      helper.connect();\n      try {","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/cellinput/PaloCellInputMeta.java#L103-L139","documentation":"Thrown by PaloCellInputMeta.readData (invoked by loadXML) when parsing the step's XML representation fails for any reason. readData wraps any exception from XMLHandler tag extraction or field-list construction into a KettleXMLException.","triggerScenarios":"loadXML called on XML whose expected tags (cube name, database meta, field dimensionname/fieldname/fieldtype nodes) are missing, malformed, or of unexpected structure.","commonSituations":"Hand-edited or truncated .ktr files; transformation XML produced by an older plugin version with a different schema; copy-paste corruption of step XML between files.","solutions":["Inspect the chained cause exception to find the exact parse failure.","Open the .ktr in a text editor and verify the PALO cell input step's XML block is complete and well-formed.","Reopen and re-save the transformation in Spoon to regenerate valid XML.","Upgrade the PALO plugin so the XML schema matches the reader's expectations."],"exampleFix":"null","handlingStrategy":"validation","validationCode":"Document doc = XMLHandler.loadXMLFile(xmlFile); /* check expected tags exist before loadXML: cube, fields nodes */","typeGuard":null,"tryCatchPattern":"try { stepMeta.loadXML(...) } catch (KettleXMLException e) { log.error(\"step XML invalid\", e.getCause()); /* repair or regenerate .ktr */ }","preventionTips":["Never hand-edit .ktr XML without validating structure","Keep plugin version in sync with saved transformation files","Keep backups of transformations before edits"],"tags":["kettle","xml","parsing","metadata"],"backgroundTag":"json-unmarshal-failed","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"}