[MGNLUI-6125] Hidden Field: Does not support storing into type 'java.lang.Long' Created: 10/Aug/20  Updated: 20/Aug/20  Resolved: 19/Aug/20

Status: Closed
Project: Magnolia UI
Component/s: dialogs, forms
Affects Version/s: 6.2.2
Fix Version/s: 6.2.3

Type: Bug Priority: Neutral
Reporter: Christian Ringele Assignee: Roman Kovařík
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: 2h 26m
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:
Epic Link: UI framework implementation
Sprint: UI FW 9
Story Points: 3

 Description   

Situation:

columnAmount:
  $type: hiddenField
  defaultValue: 2
  type: java.lang.Long
  • I also tried 'type: Long' and type: long', same problem

Try:

PD should try the 'type' property on all Fields, I'm not convinced its working at all on the other fields.

Problem:

Caused by: java.lang.RuntimeException: java.lang.ClassCastException: Cannot cast java.lang.String to java.lang.Long
	at com.vaadin.data.Binder$BindingBuilderImpl.lambda$createConverter$d263765c$2(Binder.java:872) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Result.of(Result.java:93) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Converter.lambda$from$28ca080b$1(Converter.java:105) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Converter$1.convertToModel(Converter.java:131) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Converter$2.lambda$convertToModel$5daf174e$1(Converter.java:167) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.SimpleResult.flatMap(SimpleResult.java:66) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.ValidationResultWrap.flatMap(ValidationResultWrap.java:66) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Converter$2.convertToModel(Converter.java:167) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder$BindingImpl.doConversion(Binder.java:1109) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder$BindingImpl.doValidation(Binder.java:1126) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder$BindingImpl.access$1400(Binder.java:1001) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder.lambda$validateBindings$11(Binder.java:2066) ~[vaadin-server-8.9.4.jar:8.9.4]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_112]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_112]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_112]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_112]
	at com.vaadin.data.Binder.validateBindings(Binder.java:2067) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder.validate(Binder.java:2006) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.data.Binder.validate(Binder.java:1985) ~[vaadin-server-8.9.4.jar:8.9.4]
	at info.magnolia.ui.editor.FormPresenter.lambda$validateBoundProperties$6(FormPresenter.java:139) ~[magnolia-ui-framework-6.2.2.jar:?]
	at java.util.HashMap.forEach(HashMap.java:1288) ~[?:1.8.0_112]
	at info.magnolia.ui.editor.FormPresenter.validateBoundProperties(FormPresenter.java:137) ~[magnolia-ui-framework-6.2.2.jar:?]
	at info.magnolia.ui.editor.FormView.validate(FormView.java:173) ~[magnolia-ui-framework-6.2.2.jar:?]
	at info.magnolia.ui.editor.FormView.lambda$validate$9(FormView.java:177) ~[magnolia-ui-framework-6.2.2.jar:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[?:1.8.0_112]
	at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1620) ~[?:1.8.0_112]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[?:1.8.0_112]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270) ~[?:1.8.0_112]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_112]
	at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) ~[?:1.8.0_112]
	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:743) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_112]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_112]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_112]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_112]
	at info.magnolia.ui.editor.FormView.validate(FormView.java:179) ~[magnolia-ui-framework-6.2.2.jar:?]
	at info.magnolia.ui.contentapp.action.CommitAction.execute(CommitAction.java:78) ~[magnolia-ui-framework-6.2.2.jar:?]
	at info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:62) ~[magnolia-ui-api-6.2.2.jar:?]
	at info.magnolia.ui.dialog.ActionExecution.execute(ActionExecution.java:73) ~[magnolia-ui-framework-6.2.2.jar:?]
	at info.magnolia.ui.dialog.ActionButton.lambda$new$d31ec881$1(ActionButton.java:65) ~[magnolia-ui-framework-6.2.2.jar:?]
	at sun.reflect.GeneratedMethodAccessor619.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:499) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:273) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:237) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1014) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.ui.Button.fireClick(Button.java:384) ~[vaadin-server-8.9.4.jar:8.9.4]
	at com.vaadin.ui.Button$1.click(Button.java:57) ~[vaadin-server-8.9.4.jar:8.9.4]
	at sun.reflect.GeneratedMethodAccessor618.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155) ~[vaadin-server-8.9.4.jar:8.9.4]


 Comments   
Comment by Christian Ringele [ 12/Aug/20 ]

I just tested it on a comboBoxField:

Works properly with 'type: java.lang.Long'

'type: Long' produces the same error as the hiddenField always has, as expected.

Comment by Roman Kovařík [ 18/Aug/20 ]

Provided support for any (persistable by jackrabbit) type. The default value and type have to match though:

properties:
  hiddenBoolean:
    $type: hiddenField
    type: java.lang.Boolean
    defaultValue: true
  hiddenInteger:
    $type: hiddenField
    type: java.lang.Integer
    defaultValue: 0
  hiddenLong:
    $type: hiddenField
    type: java.lang.Long
    defaultValue: !!java.lang.Long 0
  hiddenDouble:
    $type: hiddenField
    type: java.lang.Double
    defaultValue: 0.0
  hiddenDate:
    $type: hiddenField
    type: java.util.Date
    defaultValue: 2001-12-14t21:59:43.10-05:00

 

Generated at Mon Feb 12 09:33:24 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.