Uploaded image for project: 'Pivot'
  1. Pivot
  2. PIVOT-987

Different handling of script return values in BXMLSerializer

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.0.4
    • 2.1, 2.0.5
    • core-serialization
    • None
    • All

    Description

      In my bxml, I defined a TextInputContentListener method for previewInsertText in script. The method was getting invoked, but my returned Vote seemed to get ignored. Stepping through the code, I found that BXMLSerializer never assigns the result variable and ignores the returned value when the method is specified as an attribute but not when it's a child element. Is there a reason for this, or is this a bug?

      I'm using 2.0.4, but the same code is in trunk

      BXMLSerializer:

      inner class AttributeInvocationHandler, method invoke(Object proxy, Method method, Object[] args)
      ....
      // If the function didn't return a value, return the default
      Class<?> returnType = method.getReturnType();
      if (returnType == Vote.class)

      { result = Vote.APPROVE; }

      else if (returnType == Boolean.TYPE)

      { result = false; }

      return result;

      inner class ElementInvocationHandler, method invoke(Object proxy, Method method, Object[] args)
      .....
      // If the function didn't return a value, return the default
      if (result == null) {
      Class<?> returnType = method.getReturnType();
      if (returnType == Vote.class)

      { result = Vote.APPROVE; }

      else if (returnType == Boolean.TYPE)

      { result = false; }

      }

      return result;

      Attachments

        1. 987.patch
          1 kB
          Roger Lee Whitcomb

        Activity

          People

            rwhitcomb Roger Lee Whitcomb
            joshhighley Josh Highley
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: