You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pivot.apache.org by Josh Highley <jo...@gmail.com> on 2016/04/21 21:15:40 UTC

BXMLSerializer: different handling of script return values

Apologies for not specifying the subject before sending


On Thu, Apr 21, 2016 at 2:14 PM, Josh Highley <jo...@gmail.com> wrote:

> 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;
>
>
> Thanks,
>
> Josh
>
>