callPageFlow and callMethod tags don't handle arrays correctly
--------------------------------------------------------------

         Key: BEEHIVE-964
         URL: http://issues.apache.org/jira/browse/BEEHIVE-964
     Project: Beehive
        Type: Bug
  Components: NetUI  
    Versions: V1    
    Reporter: Eddie O'Neil
     Fix For: 1.1


This was sent to me privately -- the NetUI callPageFlow (and all call method 
tags) don't handle Java primitive / object arrays correctly.  The problem is 
that the String type name that the user specifies looks like:

  java.lang.String[][]

but this is compared against the Java Class type name:

  [[Ljava.lang.String;

and clearly, these two aren't equal.  Fix is to reformat the latter into the 
former and the do the String compare.

Repro:
index.jsp
   <%
       String[] includedProperties = {"TITLE", "DESCRIPTION", "LINK_URL"};
       pageContext.setAttribute("includedProperties", includedProperties);
       pageContext.setAttribute("includedPropertiesList", 
Arrays.asList(includedProperties));
   %>
   <netui-data:callPageFlow method="thisIsATest" resultId="test1">
       <netui-data:methodParameter type="java.lang.String" value="HMMMM"/>
   </netui-data:callPageFlow>
   <c:out value="${test1}"/><br/>
   <netui-data:callPageFlow method="thisIsAnotherTest" resultId="test2">
       <netui-data:methodParameter type="java.lang.String[]" 
value="${includedProperties}"/>
   </netui-data:callPageFlow>
   <c:out value="${test2}"/><br/>
   <netui-data:callPageFlow method="thisIsAListTest" resultId="test3">
       <netui-data:methodParameter type="java.util.List" 
value="${includedPropertiesList}"/>
   </netui-data:callPageFlow>
   <c:out value="${test3}"/><br/>

Controller.jpf
   public String thisIsATest(String test)
   {
       return test+"!!!!";
   }

   public String thisIsAnotherTest(String[] test)
   {
       return "Array Works!!!!";
   }

   public String thisIsAListTest(List test)
   {
       return "List Works!!!!";
   }

Final Output
   HMMMM!!!!
   Tag Error:1, Found in tag CallPageFlow]
   List Works!!!!

   Page Errors
   Error Number Tag Type Error
   1 CallPageFlow Message Could not find operation "thisIsAnotherTest" with 1 
parameter(s) of type(s) (java.lang.String[]) on the current page flow.

The same thing happens with the 'callMethod' tag,

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to