You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Roger Whitcomb (JIRA)" <ji...@apache.org> on 2016/04/22 19:23:12 UTC

[jira] [Commented] (PIVOT-987) Different handling of script return values in BXMLSerializer

    [ https://issues.apache.org/jira/browse/PIVOT-987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15254257#comment-15254257 ] 

Roger Whitcomb commented on PIVOT-987:
--------------------------------------

Per separate email from Josh that these changes are what he would expect, I have committed the change to "trunk":
Sending        core/src/org/apache/pivot/beans/BXMLSerializer.java
Transmitting file data .
Committed revision 1740570.

Merged also into "branches/2.0.x":
Sending        .
Sending        core/src/org/apache/pivot/beans/BXMLSerializer.java
Transmitting file data .
Committed revision 1740574.

(Note: this also includes the earlier change in "trunk" to return Boolean.FALSE instead of "false" in the boolean return value case).

So, Josh, can you pull the 2.0.x branch and rebuild and test in your application?  I don't have a test case in front of me, but I believe this should resolve your issue.  But if not, can you let us know?!

Thanks.

> Different handling of script return values in BXMLSerializer
> ------------------------------------------------------------
>
>                 Key: PIVOT-987
>                 URL: https://issues.apache.org/jira/browse/PIVOT-987
>             Project: Pivot
>          Issue Type: Bug
>          Components: core-serialization
>    Affects Versions: 2.0.4
>         Environment: All
>            Reporter: Josh Highley
>            Assignee: Roger Whitcomb
>            Priority: Minor
>             Fix For: 2.1, 2.0.5
>
>         Attachments: 987.patch
>
>
> 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;



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)