pivot problem with retain order

Hi,

I am using the Pivoting node with a table of 5 string column and 66521 rows. Some of the rows have values of "" in all columns. Col4 is mostly "", Col0 holds row names and col1 holds strings that should be concatenated. I.e I am defining groups with col0, Pivots with col4 and I concatenate col1 (missing checked) under options.

When I have "retain row oder" unchecked all works well.

with "retain row order" checked I get an exception:

 

	ERROR Pivoting Execute failed: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
DEBUG  Pivoting  Execute failed: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
org.knime.core.data.container.DataContainerException: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCellat org.knime.core.data.container.DataContainer.checkAsyncWriteThrowable(DataContainer.java:574)
at org.knime.core.data.container.DataContainer.addRowToTable(DataContainer.java:834)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.write(Pivot2NodeModel.java:545)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.fillPivotTable(Pivot2NodeModel.java:469)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.execute(Pivot2NodeModel.java:309)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:524)
at org.knime.core.node.Node.execute(Node.java:873)
at org.knime.core.node.workflow.SingleNodeContainer.performExecuteNode(SingleNodeContainer.java:845)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:100)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:124)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:239)
Caused by: java.lang.IllegalArgumentException: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
at org.knime.core.data.container.DataContainer.addRowToTableWrite(DataContainer.java:543)
at org.knime.core.data.container.DataContainer.access$4(DataContainer.java:507)
at org.knime.core.data.container.DataContainer$ASyncWriteCallable.call(DataContainer.java:1285)
at org.knime.core.data.container.DataContainer$ASyncWriteCallable.call(DataContainer.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
ERROR  Pivoting  Execute failed: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
DEBUG  Pivoting  Execute failed: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
org.knime.core.data.container.DataContainerException: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
at org.knime.core.data.container.DataContainer.checkAsyncWriteThrowable(DataContainer.java:574)
at org.knime.core.data.container.DataContainer.addRowToTable(DataContainer.java:834)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.write(Pivot2NodeModel.java:545)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.fillPivotTable(Pivot2NodeModel.java:469)
at org.knime.base.node.preproc.pivot.Pivot2NodeModel.execute(Pivot2NodeModel.java:309)
at org.knime.core.node.NodeModel.executeModel(NodeModel.java:524)
at org.knime.core.node.Node.execute(Node.java:873)
at org.knime.core.node.workflow.SingleNodeContainer.performExecuteNode(SingleNodeContainer.java:845)
at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:100)
at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:124)
at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:239)
Caused by: java.lang.IllegalArgumentException: Runtime class of object "13304" (index 2) in row "Row0" is IntCell and does not comply with its supposed superclass StringCell
at org.knime.core.data.container.DataContainer.addRowToTableWrite(DataContainer.java:543)
at org.knime.core.data.container.DataContainer.access$4(DataContainer.java:507)
at org.knime.core.data.container.DataContainer$ASyncWriteCallable.call(DataContainer.java:1285)
at org.knime.core.data.container.DataContainer$ASyncWriteCallable.call(DataContainer.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
 
Before executing the Pivot node I am using the Missing Values node to change all missing values into "".
 
What am I doing wrong?
 
thanks,
 
Bernd

Thanks for reporting this problem. I will try to reproduce it and fix it then for the next KNIME bugfix release.