Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    handleAsyncValidationReply

    SmartGWT 12.1p (07/25/2023) / Firefox 102.4

    After upgrading from SmartGWT 6.1p to 12.1p, I now get the following Exception when performing custom server validation:

    Call to Super for method: handleAsyncValidationReply failed on: [DynamicForm ID:isc_MyDynamicForm_16]: couldn't find a superclass implementation of : DynamicForm.handleAsyncValidationReply
    Class.invokeSuper(_1=>null, _2=>"handleAsyncValidationReply", _3=>undef, _4=>undef, _5=>undef, _6=>undef, _7=>undef, _8=>undef, _9=>undef, _10=>undef, _11=>undef, _12=>undef, _13=>undef)
    Class.Super(_1=>"handleAsyncValidationReply", _2=>[object Arguments], _3=>undef)
    anonymous(true, null, Array[1])
    bt(a=>anonymous(), b=>[DynamicForm ID:isc_MyDynamicForm_16], c=>[object Arguments])
    et(b=>anonymous(), c=>[DynamicForm ID:isc_MyDynamicForm_16], d=>[object Arguments])
    [o]DynamicForm.handleAsyncValidationReply(true, null, Array[1])
    handleAsyncValidationReplyObservation(true, null, Array[1])
    Canvas.$742(_1=>Obj, _2=>null, _3=>Obj)
    $376(_15=>Obj, _16=>null, _17=>Obj)
    [c]Class.fireCallback(_1=>$376(), _2=>"dsResponse,data,dsRequest", _3=>Array[3], _4=>[DataSource ID:jreapADMI], _5=>undef)
    Class.fireCallback(_1=>$376(), _2=>"dsResponse,data,dsRequest", _3=>Array[3], _4=>undef)
    DataSource.fireResponseCallbacks(_1=>Obj, _2=>Obj, _3=>Obj, _4=>Obj)
    DataSource.$38b(_1=>null, _2=>Obj, _3=>Obj, _4=>Obj, _5=>Obj)
    DataSource.$50h(_1=>Obj, _2=>null, _3=>Obj)
    ** recursed on [c]Class.fireCallback

    #2
    Thanks for the report - we're taking a look and will update here shortly.

    Comment


      #3
      We don't see anything obvious here, from what we know so far - no framework calls to Super for handleAsyncValidationReply, for example.

      Can you show the form(s) that are hitting the issue?

      Comment


        #4
        Code:
        
        asyncHandlers.put(myForm.getID(), myForm.addAsyncValidationReplyHandler(new AsyncValidationReplyHandler() {
        
            public void onAsyncValidationReply(AsyncValidationReplyEvent event) {
                HandlerRegistration hr = asyncHandlers.remove(myForm.getID());
                hr.removeHandler();
        
                boolean errorFound = false;
                if (event.getErrors() != null) {
                    errorFound = true;
                }
        
                if (!errorFound && asyncHandlers.isEmpty()) {
                    applyFinished(hide);
                }
            }
        }));
        If I comment out these lines the Exception is not thrown:

        Code:
                HandlerRegistration hr = asyncHandlers.remove(form.getID());
                hr.removeHandler();
        Last edited by rle125; 11 Sep 2023, 08:56.

        Comment


          #5
          We found an additional call to instantiate a DynamicForm in one of our sub-classes. This double instantiation must have caused the initial instantiation (and async registration) to fail.

          Comment

          Working...
          X