bamaer opened a new issue, #9084: URL: https://github.com/apache/hop/issues/9084
### Apache Hop version? 2.20.0-SNAPSHOT ### Java version? 21 ### Operating system Linux ### What happened? ### Apache Hop version? 2.20.0 ### What happened? A PDI transformation with a CSV file input transform stores the type as `CsvInput`. The Hop plugin id is `CSVInput`. The Kettle importer copies the type unchanged, so the imported `.hpl` contains `<type>CsvInput</type>`. The pipeline runs, and the transform dialog opens as CSV file input. On the pipeline canvas, the transform is drawn with the missing-plugin (warning triangle) icon. Changing the type to `CSVInput` in the XML shows the correct icon. ### Cause - Plugin lookup ignores case: `PluginRegistry.getPlugin()` → `Plugin.matches()` → `Const.indexOfString()` uses `equalsIgnoreCase`. - Icon lookup does not: `GuiResource.loadTransformImages()` stores icons in a `Hashtable` keyed by `plugin.getIds()[0]`, and `GuiResource.getSwtImageTransform(pluginId)` calls `get()` with the id from the file. - Before #5142 (2.13.0), a failed lookup drew no icon. Since then it falls back to `getSwtImageMissing()`, so the mismatch shows as a missing plugin. Any transform whose id in a file differs from the registered id only by case is affected, not only CSV file input. ### Steps to reproduce 1. Create a PDI transformation with a CSV file input transform (`<type>CsvInput</type>`). 2. Import it with the Kettle importer. 3. Open the imported pipeline in Hop GUI. ### Expected The CSV file input icon. ### Suggested fix - `GuiResource.getSwtImageTransform()`: resolve the plugin through `PluginRegistry` and look up the icon by its registered id, or key the icon map case-insensitively. The same applies to `getSwtImageAction()`. - `KettleImport`: rename `CsvInput` to `CSVInput` so imported files carry the Hop plugin id. ### Issue Priority Priority: 2 ### Issue Component Component: Import -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
