Roger Whitcomb created PIVOT-987:
------------------------------------

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


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)

Reply via email to