[JSFIELD-36] Setting a damLinkField via postMessage doesn't work Created: 11/May/23  Updated: 17/Oct/23  Resolved: 17/Oct/23

Status: Resolved
Project: Java Script UI (App and Dialog Fields)
Component/s: None
Affects Version/s: None
Fix Version/s: 2.0.3

Type: Bug Priority: Neutral
Reporter: Sebastian Geschke Assignee: Teresa Miyar
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive jsfield-36-1.zip     HTML File testField.html    
Template:
Acceptance criteria:
Empty
Date of First Response:

 Description   

Steps to reproduce

  1. Setting a damLinkField using:
    parent.window.postMessage(
      {
        action: "changeFormFieldValue",
        correlationId: this.store.state.correlationId,
        fieldName: "someImageField",
        value: "some:jcr:imagelink",
      },
      "*",
    ); 

     

Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class info.magnolia.dam.api.Item (java.lang.String is in module java.base of loader 'bootstrap'; info.magnolia.dam.api.Item is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @15797b35)
    at com.vaadin.ui.ComboBox.updateSelectedItemCaption(ComboBox.java:860) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.ComboBox.updateSelectedItemState(ComboBox.java:853) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setSelectedItem(AbstractSingleSelect.java:355) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setSelectedItem(AbstractSingleSelect.java:119) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setValue(AbstractSingleSelect.java:153) ~[vaadin-server-8.15.2.jar:8.15.2]
    at info.magnolia.ui.field.AbstractLinkField.doSetValue(AbstractLinkField.java:115) ~[magnolia-ui-framework-6.2.33.jar:?]
    at com.vaadin.ui.AbstractField.setValue(AbstractField.java:140) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractField.setValue(AbstractField.java:53) ~[vaadin-server-8.15.2.jar:8.15.2]
    at info.magnolia.ui.javascript.field.JavascriptField.lambda$changeFormFieldValue$2(JavascriptField.java:164) ~[magnolia-ui-framework-javascript-2.0.2-SNAPSHOT.jar:?]
    at java.util.Optional.ifPresent(Optional.java:183) ~[?:?]
    at info.magnolia.ui.javascript.field.JavascriptField.changeFormFieldValue(JavascriptField.java:164) ~[magnolia-ui-framework-javascript-2.0.2-SNAPSHOT.jar:?]
    at info.magnolia.ui.javascript.field.JavascriptFieldComponent.lambda$new$30dccc4e$2(JavascriptFieldComponent.java:53) ~[magnolia-ui-framework-javascript-2.0.2-SNAPSHOT.jar:?]
    at com.vaadin.server.JavaScriptCallbackHelper$1.call(JavaScriptCallbackHelper.java:82) ~[vaadin-server-8.15.2.jar:8.15.2]
    at jdk.internal.reflect.GeneratedMethodAccessor979.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
r

Expected results

Image Link saved in JCR

Actual results

Workaround

Development notes



 Comments   
Comment by Christopher Zimmermann [ 11/May/23 ]

Do any linkFields work? The base one, - or the pageLinkField?

Comment by Teresa Miyar [ 03/Oct/23 ]

sgeschke can you upload your light module so I can debug?

Comment by Sebastian Geschke [ 11/Oct/23 ]

Hi tmiyar I uploaded a light module to reproduce this issue.

Comment by Sebastian Geschke [ 11/Oct/23 ]

I've also added test cases for linkField and pageLinkField. Both are not working but the exception is slightly different

Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class javax.jcr.Node (java.lang.String is in module java.base of loader 'bootstrap'; javax.jcr.Node is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @1af69067)
    at com.vaadin.ui.ComboBox.updateSelectedItemCaption(ComboBox.java:860) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.ComboBox.updateSelectedItemState(ComboBox.java:853) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setSelectedItem(AbstractSingleSelect.java:355) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setSelectedItem(AbstractSingleSelect.java:119) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractSingleSelect.setValue(AbstractSingleSelect.java:153) ~[vaadin-server-8.15.2.jar:8.15.2]
    at info.magnolia.ui.field.AbstractLinkField.doSetValue(AbstractLinkField.java:115) ~[magnolia-ui-framework-6.2.33.jar:?]
    at com.vaadin.ui.AbstractField.setValue(AbstractField.java:140) ~[vaadin-server-8.15.2.jar:8.15.2]
    at com.vaadin.ui.AbstractField.setValue(AbstractField.java:53) ~[vaadin-server-8.15.2.jar:8.15.2]
    at info.magnolia.ui.javascript.field.JavascriptField.lambda$changeFormFieldValue$2(JavascriptField.java:162) ~[magnolia-ui-framework-javascript-2.0.2.jar:?]
    at java.util.Optional.ifPresent(Optional.java:183) ~[?:?]
    at info.magnolia.ui.javascript.field.JavascriptField.changeFormFieldValue(JavascriptField.java:162) ~[magnolia-ui-framework-javascript-2.0.2.jar:?]
    at info.magnolia.ui.javascript.field.JavascriptFieldComponent.lambda$new$30dccc4e$2(JavascriptFieldComponent.java:60) ~[magnolia-ui-framework-javascript-2.0.2.jar:?]
    at com.vaadin.server.JavaScriptCallbackHelper$1.call(JavaScriptCallbackHelper.java:82) ~[vaadin-server-8.15.2.jar:8.15.2]
    at jdk.internal.reflect.GeneratedMethodAccessor1510.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155) ~[vaadin-server-8.15.2.jar:8.15.2] 
Comment by Teresa Miyar [ 17/Oct/23 ]

Added modified version of testField to prevent infinite loop in the change function

Generated at Mon Feb 12 02:16:28 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.