When I run a workflow in batch mode, and I override the flow variable (such as DataURL for File Reader) it still attempts to open the file in the original location, producing an error and then opens the file in the newly defined location. While this can usually be ignored, it is more critical when using Table to PDF and overridding OutPutFile. It produces a null pointer exception (org.knime.ext.birt.nodes.ReportNodeModel.configure(ReportNodeModel.java:239)) yet still produces the correct output. However, the exception and stack trace in the log, is disconcerting and still implies an error.
Thanks for the report. I'll log this in our bug tracking system. By any chance do you already have a minimal example of this that we could attach to the report?
Let me try to construct something - I am running a windows exported workflow on a linux system and it tries to open the windows file specified in the workflow (DataURL) which obviously doesnt work too well, even though I give it the correct URL in the -option. Some more serious problems crop up like null pointers (for example, when changing the OutPutFile flow variable for Table to PDF but it runs fine (the log shows it it trying to open the old location) but the null pointer message and stack trace in the log is disconcerting.
How do I provide the example? I would assume that I would need to provide the exported workflow, the linux command line and the knime.log file from the run workspace.
I know it's considered bad form to response to your own posts, but I just discovered the attach files link at the bottom. I'll get these done as soon as I can - if there's something else you want besides the exported workflow, command line and log, please let me know.
In constructing a simple demo, it turns out that many of the problems appear to be related to using File Reader (WARNing about missing default file from windows and a null pointer exception for Table to PDF which is indicated as an ERROR). When I use CSV Reader, no errors or warnings appear, including the null pointer exception with Table to Pdf.
Using File Reader:
An WARNing that the file on my windows x:/ drive is unavailable appears as well as a null pointer exception ERROR overriding the PDF output file. It uses the overridding file and produces correct output in the correct directory even with the null pointer exception
Using CSV Reader:
Everything runs without errors, including pulling in the data file without warnings from a local Linux drive and producing the PDF report without the exception
Attachments: These attachments were created by designing the workflows on Windows with local Windows files, and then running them on Linux using the KNIME_BATCH_APPLICATION interface
data.csv - Very simple data file
DemoWorkflow.zip - Workspace using File Reader
DemoWorkflowCmd.txt - Linux command and output running DemoWorkflow.zip (File Reader) on Linux
DemoWorkspace_knime.log - Log from running File Reader on Linux
DemoWorkflowCSV.zip - Workspace using CSV Reader
DemoWorkflowCSVVmd.txt - Linux command and output runnng DemoWorkflowCSV (CSV Reader) workflow on linux
DemoWorkspaceCSV_knime.log - Log from running the CSV Reader workspace on Linux
I can make the switch to CSV Reader (which the help text indicates I should use in batch processing), but it puzzles me that the null pointer exception appears to be a cascaded problem from using File Reader. I just wonder if it's indicative of an underlying problem,
Thank you in advance for your help.
Thanks for uploading this, it is really quite helpful. It looks like you are using KNIME batch mode to manually edit node settings. There is a more modern way of doing this since the introduciton of Flow Variables which we think is generally a bit cleaner. The attached workflow has two global flow variables (in_file, and out_file) that are used to control the workflow nodes. The command line you would use would then look like:
knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflow.variable=in_file,<URL to csv file>,String -workflow.variable=out_file,<path to output pdf>,String -workflowDir="<path to workflow>"
I am not sure what was causing the exception, I was not able to easily reproduce it; if this doesn't work for some reason, let me know and I'll look into it further.