Skip to content

[Bug]: GUI - Unable to save pipeline when Update Table Transform Commit Size set with a variable #6413

@zoomingrocket

Description

@zoomingrocket

Apache Hop version?

2.16

Java version?

Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

Operating system

Windows

What happened?

Hop GUI - Unable to save pipeline if Output Table Update Commit Size is configured with a replacement variable

Error Stack

org.apache.hop.core.exception.HopException: 
Error saving pipeline to file 'C:\TestPipeline.hpl'

Error getting value for field 'commitSize' using method 'getCommitSize' in class 'org.apache.hop.pipeline.transforms.update.UpdateMeta
 at org.apache.hop.ui.hopgui.HopGui.main (HopGui.java:374)
 at org.apache.hop.ui.hopgui.HopGui.open (HopGui.java:496)
 at org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3748)
 at org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:4160)
 at org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1214)
 at org.eclipse.swt.widgets.Display.sendEvent (Display.java:4362)
 at org.eclipse.swt.widgets.EventTable.sendEvent (EventTable.java:91)
 at org.apache.hop.ui.core.gui.BaseGuiWidgets.lambda$getListener$1 (BaseGuiWidgets.java:213)
 at java.lang.reflect.Method.invoke (Method.java:568)
 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
 at org.apache.hop.ui.hopgui.HopGui.menuFileSave (HopGui.java:796)
 at org.apache.hop.ui.hopgui.delegates.HopGuiFileDelegate.fileSave (HopGuiFileDelegate.java:185)
 at org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.save (HopGuiPipelineGraph.java:3674)
 at org.apache.hop.pipeline.PipelineMeta.getXml (PipelineMeta.java:1610)
 at org.apache.hop.pipeline.transform.TransformMeta.getXml (TransformMeta.java:186)
 at org.apache.hop.pipeline.transform.BaseTransformMeta.getXml (BaseTransformMeta.java:257)
 at org.apache.hop.metadata.serializer.xml.XmlMetadataUtil.serializeObjectToXml (XmlMetadataUtil.java:99)
 at org.apache.hop.metadata.util.ReflectionUtil.getFieldValue (ReflectionUtil.java:145)
 at java.lang.reflect.Method.invoke (Method.java:568)
 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)


	at org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.save(HopGuiPipelineGraph.java:3691)
	at org.apache.hop.ui.hopgui.delegates.HopGuiFileDelegate.fileSave(HopGuiFileDelegate.java:185)
	at org.apache.hop.ui.hopgui.HopGui.menuFileSave(HopGui.java:796)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.apache.hop.ui.core.gui.BaseGuiWidgets.lambda$getListener$1(BaseGuiWidgets.java:213)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1214)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4160)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3748)
	at org.apache.hop.ui.hopgui.HopGui.open(HopGui.java:496)
	at org.apache.hop.ui.hopgui.HopGui.main(HopGui.java:374)
Caused by: org.apache.hop.core.exception.HopException: 
Error getting value for field 'commitSize' using method 'getCommitSize' in class 'org.apache.hop.pipeline.transforms.update.UpdateMeta
 at org.apache.hop.ui.hopgui.HopGui.main (HopGui.java:374)
 at org.apache.hop.ui.hopgui.HopGui.open (HopGui.java:496)
 at org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3748)
 at org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:4160)
 at org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1214)
 at org.eclipse.swt.widgets.Display.sendEvent (Display.java:4362)
 at org.eclipse.swt.widgets.EventTable.sendEvent (EventTable.java:91)
 at org.apache.hop.ui.core.gui.BaseGuiWidgets.lambda$getListener$1 (BaseGuiWidgets.java:213)
 at java.lang.reflect.Method.invoke (Method.java:568)
 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
 at org.apache.hop.ui.hopgui.HopGui.menuFileSave (HopGui.java:796)
 at org.apache.hop.ui.hopgui.delegates.HopGuiFileDelegate.fileSave (HopGuiFileDelegate.java:185)
 at org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.save (HopGuiPipelineGraph.java:3674)
 at org.apache.hop.pipeline.PipelineMeta.getXml (PipelineMeta.java:1610)
 at org.apache.hop.pipeline.transform.TransformMeta.getXml (TransformMeta.java:186)
 at org.apache.hop.pipeline.transform.BaseTransformMeta.getXml (BaseTransformMeta.java:257)
 at org.apache.hop.metadata.serializer.xml.XmlMetadataUtil.serializeObjectToXml (XmlMetadataUtil.java:99)
 at org.apache.hop.metadata.util.ReflectionUtil.getFieldValue (ReflectionUtil.java:145)
 at java.lang.reflect.Method.invoke (Method.java:568)
 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)

	at org.apache.hop.metadata.util.ReflectionUtil.getFieldValue(ReflectionUtil.java:153)
	at org.apache.hop.metadata.serializer.xml.XmlMetadataUtil.serializeObjectToXml(XmlMetadataUtil.java:99)
	at org.apache.hop.pipeline.transform.BaseTransformMeta.getXml(BaseTransformMeta.java:257)
	at org.apache.hop.pipeline.transform.TransformMeta.getXml(TransformMeta.java:186)
	at org.apache.hop.pipeline.PipelineMeta.getXml(PipelineMeta.java:1610)
	at org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.save(HopGuiPipelineGraph.java:3674)
	... 14 more
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.apache.hop.metadata.util.ReflectionUtil.getFieldValue(ReflectionUtil.java:145)
	... 19 more
Caused by: java.lang.NumberFormatException: For input string: "${e_Tgt_commitsize}"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
	at java.base/java.lang.Integer.parseInt(Integer.java:654)
	at java.base/java.lang.Integer.parseInt(Integer.java:786)
	at org.apache.hop.pipeline.transforms.update.UpdateMeta.getCommitSize(UpdateMeta.java:133)
	... 24 more

Same works fine for Insert Table output transform shape. The current workaround involves hard-coding a numeric commit size value.

Thanks!

Issue Priority

Priority: 3

Issue Component

Component: Hop Gui

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions