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
>
>