NullPointer excepption when storing WF with executed 'Model to Cell' node

Hi,

I get  the following error messages ...

ERROR     SaveWorkflowRunnable               Could not save workflow
ERROR     WorkflowEditor                     Could not save workflow: Could not save workflow: Error while writing to buffer: java.lang.NullPointerException

... when storing a WF with an executed 'Model to Cell' node in it. I'm using KNIME 2.11.2 - with all extensions - on a Windows PC (Win7).

The simplest WF for reproduction is: 'Table Creator'->'Auto-Binner'->'Model to Cell', where:

  • 'Table Creator' has 1 numeric (double) column with some values (e.g. 1,2,3,4,5)
  • 'AUto-Binner' uses default settings
  • 'Model to Cell' uses default settings

Trying to store this WF after execution results in the Nullpointer Exception. When resetting the 'Model to Cell' node saving of the WF works. Please find the log file below!

Erich

2015-03-16 10:35:12,363 DEBUG ModalContext FileSingleNodeContainerPersistor : Replaced node directory "C:\Data\knime-workspace\histogramTest\Model to Cell (#36)"
2015-03-16 10:35:12,373 ERROR ModalContext SaveWorkflowRunnable : Could not save workflow
2015-03-16 10:35:12,373 DEBUG ModalContext SaveWorkflowRunnable : Could not save workflow
java.lang.RuntimeException: Error while writing to buffer: java.lang.NullPointerException
    at org.knime.core.data.container.Buffer.addRow(Buffer.java:637)
    at org.knime.core.data.container.Buffer.addToZipFile(Buffer.java:1745)
    at org.knime.core.data.container.ContainerTable.saveToFile(ContainerTable.java:181)
    at org.knime.core.node.BufferedDataTable.save(BufferedDataTable.java:464)
    at org.knime.core.node.FileNodePersistor.saveBufferedDataTable(FileNodePersistor.java:1476)
    at org.knime.core.node.FileNodePersistor.savePort(FileNodePersistor.java:1378)
    at org.knime.core.node.FileNodePersistor.savePorts(FileNodePersistor.java:1290)
    at org.knime.core.node.FileNodePersistor.save(FileNodePersistor.java:1244)
    at org.knime.core.node.workflow.FileNativeNodeContainerPersistor.save(FileNativeNodeContainerPersistor.java:509)
    at org.knime.core.node.workflow.FileSingleNodeContainerPersistor.save(FileSingleNodeContainerPersistor.java:604)
    at org.knime.core.node.workflow.FileWorkflowPersistor.saveNodeContainer(FileWorkflowPersistor.java:2226)
    at org.knime.core.node.workflow.FileWorkflowPersistor.saveContent(FileWorkflowPersistor.java:1999)
    at org.knime.core.node.workflow.FileWorkflowPersistor.save(FileWorkflowPersistor.java:1915)
    at org.knime.core.node.workflow.WorkflowManager.save(WorkflowManager.java:7892)
    at org.knime.workbench.editor2.SaveWorkflowRunnable.run(SaveWorkflowRunnable.java:125)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.io.IOException: java.lang.NullPointerException
    at org.knime.core.node.port.pmml.preproc.PMMLPreprocPortObject.save(PMMLPreprocPortObject.java:201)
    at org.knime.core.node.port.AbstractPortObject$MyPortObjectSerializer.savePortObject(AbstractPortObject.java:195)
    at org.knime.core.node.port.AbstractPortObject$MyPortObjectSerializer.savePortObject(AbstractPortObject.java:1)
    at org.knime.core.node.port.PortUtil.writeObjectToStream(PortUtil.java:248)
    at org.knime.core.data.model.PortObjectCell$1.serialize(PortObjectCell.java:103)
    at org.knime.core.data.model.PortObjectCell$1.serialize(PortObjectCell.java:1)
    at org.knime.core.data.container.DCObjectOutputVersion2.writeDataCellPerKNIMESerializer(DCObjectOutputVersion2.java:113)
    at org.knime.core.data.container.Buffer.writeDataCell(Buffer.java:1353)
    at org.knime.core.data.container.Buffer.writeRow(Buffer.java:1288)
    at org.knime.core.data.container.Buffer.addRow(Buffer.java:615)
    ... 15 more
Caused by: java.lang.NullPointerException
    at org.knime.core.node.port.pmml.preproc.PMMLPreprocPortObject.save(PMMLPreprocPortObject.java:191)
    ... 24 more
2015-03-16 10:35:12,393 ERROR main WorkflowEditor : Could not save workflow: Could not save workflow: Error while writing to buffer: java.lang.NullPointerException
2015-03-16 10:35:12,393 DEBUG main WorkflowEditor : Could not save workflow: Could not save workflow: Error while writing to buffer: java.lang.NullPointerException
java.lang.reflect.InvocationTargetException
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
    at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1162)
    at org.knime.workbench.editor2.WorkflowEditor.saveTo(WorkflowEditor.java:1512)
    at org.knime.workbench.editor2.WorkflowEditor.doSave(WorkflowEditor.java:1625)
    at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:151)
    at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
    at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
    at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2649)
    at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285)
    at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264)
    at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:156)
    at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1399)
    at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3416)
    at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3429)
    at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
    at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
    at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
    at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.knime.product.rcp.KNIMEApplication.start(KNIMEApplication.java:130)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.SWT.error(SWT.java:4327)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:367)
    at org.eclipse.swt.widgets.ToolItem.setEnabled(ToolItem.java:630)
    at org.eclipse.jface.action.StatusLine.setCanceled(StatusLine.java:491)
    at org.eclipse.jface.action.StatusLineManager$1.setCanceled(StatusLineManager.java:189)
    at org.eclipse.core.runtime.ProgressMonitorWrapper.setCanceled(ProgressMonitorWrapper.java:132)
    at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.setCanceled(EventLoopProgressMonitor.java:151)
    at org.knime.workbench.editor2.SaveWorkflowRunnable.run(SaveWorkflowRunnable.java:174)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

 

 

Hi Erich,

thank you for reporting this. I could reconstruct this and put it into our bug tracking system. I keep you posted as soon as we have a fix.

Best regards, Iris

... just to confirm this will be fixed in 3.1.1 (due end of next week).