Table Row to Variable Bug

KNIME 5.1, If you use a Table Row to Variable node, and your input table contains at least one column with DataType “?”, then when you try to execute the node, even if in the include columns there are only String, Double, or Integer columns. The node will fail to execute with Java type error.

Thanks,

Simon.

1 Like

Hi Simon,
Can you show me some screenshots? I just tried it in 5.1.2 and can’t reproduce it.
Alexander


1 Like

Hi, So I look at the column type with the “?” and it says it is “PetriNetCell”. This is originally from a Table Reader node where I am reading in a table from KNIME 4.7.
I have no idea what this column type is, I have never seen it before. But this is what breaks this node.
Simon.

Hi,
Oh wow, never heard of that type either. Maybe its from the Process Mining Extension?
Alexander

This is a known issue (internal ticket number AP-21471). KNIME expects every data type to indicate its capabilities and requirements via Java interfaces. The Process Mining extension PM4KNIME doesn’t do that, so it looks like (for example) the PetriNetCell data type is compatible with any and all values. When the column type for a mixed column like column1 above is computed, the PetriNetCell type looks like a perfect fit, so it it picked.

While the cell type definition is unconventional, our code should not be as easily confused by extensions. We already had the ticket in our backlog, but your report has bumped up its urgency. Thanks for your report!

2 Likes

We will add special handling for data types which (a) are in a non-KNIME package but (b) only implement DataValue interfaces from KNIME packages, excluding those in the search for potential super-types. This will (hopefully) prevent all accidental type hierarchy breakages like the PetriNetCell one.

@PM4KNIME Would it still be possible to introduce custom DataValue interfaces for these types to make them compliant with the rest of the KNIME type system? The Noding Guidelines state (under “Data Handling”, page 7, emphasis mine):

A node implementation must not cast the elements of a data row to specific cell
implementations. Instead it should always refer to the corresponding DataValue
interface (as there may be more than only one data cell implementation).

That would be much appreciated.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.