-
Bug
-
Resolution: Unresolved
-
Low
-
None
-
6.2.5
-
None
-
None
Validation on link fields is no longer possible (since 6.2.5)
Reproduce
Create a dialog with the following configuration:
form: properties: link: $type: linkField chooser: workbenchChooser: appName: pages-app label: Main Page Path validators: ukSiteOnly: class: info.magnolia.ui.field.RegexpValidatorDefinition pattern: (^\/uk\/.*)|(^$) errorMessage: Page must be under /uk.
Using the dialog, select a page and try to save the dialog.
Observe the error:
Caused by:
Caused by: java.lang.ClassCastException: info.magnolia.ui.datasource.jcr.JcrNodeWrapper cannot be cast to java.lang.String at com.vaadin.data.validator.RegexpValidator.apply(RegexpValidator.java:33) ~[vaadin-server-8.9.4.jar:8.9.4] at com.vaadin.data.Binder$ValidatorAsConverter.convertToModel(Binder.java:1275) ~[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.Converter$2.convertToModel(Converter.java:165) ~[vaadin-server-8.9.4.jar:8.9.4] at com.vaadin.data.Converter$2.convertToModel(Converter.java:165) ~[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_261] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_261] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_261] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_261] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_261] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_261] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_261] 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:133) ~[magnolia-ui-framework-6.2.5.jar:?] at java.util.HashMap.forEach(HashMap.java:1289) ~[?:1.8.0_261] at info.magnolia.ui.editor.FormPresenter.validateBoundProperties(FormPresenter.java:131) ~[magnolia-ui-framework-6.2.5.jar:?] at info.magnolia.ui.editor.FormView.validate(FormView.java:182) ~[magnolia-ui-framework-6.2.5.jar:?] at info.magnolia.ui.contentapp.action.CommitAction.execute(CommitAction.java:78) ~[magnolia-ui-framework-6.2.5.jar:?] at info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:62) ~[magnolia-ui-api-6.2.5.jar:?] at info.magnolia.ui.dialog.ActionExecution.execute(ActionExecution.java:73) ~[magnolia-ui-framework-6.2.5.jar:?] at info.magnolia.ui.dialog.ActionButton.lambda$new$d31ec881$1(ActionButton.java:63) ~[magnolia-ui-framework-6.2.5.jar:?] at sun.reflect.GeneratedMethodAccessor900.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_261] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_261] 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.GeneratedMethodAccessor899.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_261] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_261] at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155) ~[vaadin-server-8.9.4.jar:8.9.4] ... 109 more
Workaround:
If you are validating a specific root path then use a datasource with a rootPath configuration.
form: properties: link: $type: linkField datasource: $type: jcrDatasource workspace: website rootPath: /uk allowedNodeTypes: pages: mgnl:page label: Main Page Path
Acceptance criteria
- is related to
-
CONTEDIT-297 Browse for asset: Exception on click Browse button
- Closed
- relates to
-
MGNLUI-6406 Complex fields doesn't allow validators config anymore
- Closed