{"record":{"id":"187e5cac46cecdfe","repo":"pentaho/pentaho-kettle","slug":"luciddbstreamingloadermeta-exception","errorCode":"LucidDBStreamingLoaderMeta.Exception.UnableToReadStepInfoFromXML","errorMessage":"LucidDBStreamingLoaderMeta.Exception.UnableToReadStepInfoFromXML","messagePattern":"LucidDBStreamingLoaderMeta\\.Exception\\.UnableToReadStepInfoFromXML","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java","lineNumber":249,"sourceCode":"        fieldStreamForFields[i] = XMLHandler.getTagValue( vnode, \"field_stream_name\" );\n        if ( fieldStreamForFields[i] == null ) {\n          fieldStreamForFields[i] = fieldTableForFields[i]; // default:\n        }\n        // the\n        // same\n        // name!\n        insOrUptFlag[i] = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( vnode, \"insert_or_update_flag\" ) );\n\n      }\n\n      for ( int i = 0; i < nrTabIsEnable; i++ ) {\n        Node vnode = XMLHandler.getSubNodeByNr( stepnode, \"tab_is_enable_mapping\", i );\n        tabIsEnable[i] = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( vnode, \"tab_is_enable\" ) );\n\n      }\n\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"LucidDBStreamingLoaderMeta.Exception.UnableToReadStepInfoFromXML\" ), e );\n    }\n  }\n\n  public void setDefault() {\n    databaseMeta = null;\n    schemaName = \"\";\n    tableName = BaseMessages.getString( PKG, \"LucidDBStreamingLoaderMeta.DefaultTableName\" );\n    host = \"localhost\";\n    port = \"9034\";\n    operation = \"MERGE\";\n    allocate( 0, 0, 0 );\n  }\n\n  public String getXML() {\n    StringBuffer retval = new StringBuffer( 300 );\n\n    retval","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java#L231-L267","documentation":"readData() in LucidDBStreamingLoaderMeta parses the step's XML definition (stepnode) when a transformation is loaded, and wraps any exception (malformed XML, missing nodes like 'fields' or 'tab_is_enable_mapping', wrong tag values) into a KettleXMLException with this localized message. It signals that the LucidDB Streaming Loader step's metadata could not be read from the .ktr file.","triggerScenarios":"loadXML() calls readData(stepnode); readData throws when XMLHandler calls fail or return unexpected values inside its try block — e.g. a .ktr saved by a newer/different plugin version missing the 'fields' entries or 'tab_is_enable_mapping' sub-nodes this reader expects.","commonSituations":"Opening a transformation whose LucidDB Streaming Loader step XML was hand-edited or corrupted; loading a .ktr produced by a newer Pentaho version into an older one; plugin jar version mismatch between save and load.","solutions":["Open the .ktr in a text editor and verify the LucidDBStreamingLoader <step> XML block contains the expected tags ('fields', 'field_name', 'field_table', 'tab_is_enable_mapping', 'tab_is_enable').","Ensure the pentaho-lucid-db-streaming-loader plugin version loading the file is >= the version that saved it; upgrade the plugin or re-save the transformation in the newer tool.","Restore the transformation from backup/source control and re-configure the step.","If hand-editing, fix the malformed/missing node in the XML and reload."],"exampleFix":"// before (hand-edited XML missing mapping nodes)\n<tab_is_enable_mapping/>\n// after (each mapping entry present with both tags)\n<tab_is_enable_mapping><tab_name>MYTABLE</tab_name><tab_is_enable>Y</tab_is_enable></tab_is_enable_mapping>","handlingStrategy":"try-catch","validationCode":"Node steps = XMLHandler.getSubNode(stepnode, \"fields\");\nif (steps == null || XMLHandler.countNodes(steps, \"field\") == 0) {\n  throw new IllegalArgumentException(\"LucidDBStreamingLoader step XML has no fields block\");\n}","typeGuard":"if (stepnode == null || XMLHandler.getSubNode(stepnode, \"fields\") == null) return false;","tryCatchPattern":"try {\n  meta.loadXML(stepnode, databases, metaStore);\n} catch (KettleXMLException e) {\n  logError(\"Failed to read LucidDB Streaming Loader step metadata\", e);\n  throw e; // or fall back to setDefault()\n}","preventionTips":["Never hand-edit step XML; reconfigure via the Spoon dialog.","Keep plugin versions consistent across environments that share .ktr files.","Store transformations in source control to restore known-good XML.","Validate transformations right after upgrading Pentaho/plugin versions."],"tags":["kettle","xml","metadata","transformation"],"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"}