On 06/07/2014 12:40, Konstantin Kolinko wrote:
> 2014-07-04 22:47 GMT+04:00  <ma...@apache.org>:
>> Author: markt
>> Date: Fri Jul  4 18:47:02 2014
>> New Revision: 1607906
>>
>> URL: http://svn.apache.org/r1607906
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56652
>> Add support for method parameters that use arrays and varargs to 
>> ELProcessor.defineFunction()
>>
>> Modified:
>>     tomcat/trunk/java/javax/el/ELProcessor.java
>>     tomcat/trunk/java/org/apache/el/lang/ELSupport.java
>>     tomcat/trunk/java/org/apache/el/lang/ExpressionBuilder.java
>>     tomcat/trunk/java/org/apache/el/parser/AstFunction.java
>>     tomcat/trunk/test/javax/el/TestELProcessor.java
>>     tomcat/trunk/test/javax/el/TesterFunctions.java
>>     tomcat/trunk/webapps/docs/changelog.xml
>>
>> Modified: tomcat/trunk/java/javax/el/ELProcessor.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELProcessor.java?rev=1607906&r1=1607905&r2=1607906&view=diff
>> ==============================================================================
>> --- tomcat/trunk/java/javax/el/ELProcessor.java (original)
>> +++ tomcat/trunk/java/javax/el/ELProcessor.java Fri Jul  4 18:47:02 2014
>> (...)
>> @@ -235,7 +245,58 @@ public class ELProcessor {
>>                      ImportHandler importHandler = 
>> context.getImportHandler();
>>                      for (int i = 0; i < parameterTypeNames.length; i++) {
>>                          String parameterTypeName = 
>> parameterTypeNames[i].trim();
>> -                        if (!PRIMITIVES.contains(parameterTypeName) &&
>> +                        int dimension = 0;
>> +                        int bracketPos = parameterTypeName.indexOf('[');
>> +                        if (bracketPos > -1) {
>> +                            String parameterTypeNameOnly =
>> +                                    parameterTypeName.substring(0, 
>> bracketPos).trim();
> 
> trim() here - OK.
> 
>> +                            while (bracketPos > -1) {
>> +                                dimension++;
>> +                                bracketPos = parameterTypeName.indexOf('[', 
>> bracketPos+ 1);
>> +                            }
>> +                            parameterTypeName = parameterTypeNameOnly;
>> +                        }
>> +                        boolean varArgs = false;
>> +                        if (parameterTypeName.endsWith("...")) {
>> +                            varArgs = true;
>> +                            dimension = 1;
>> +                            parameterTypeName = parameterTypeName.substring(
>> +                                    0, parameterTypeName.length() -3);
> 
> I think it needs trim() here as well.

Thanks. I agree. All the other substring() calls in that method have a
trim and this one should too.

Fixed in r1608300.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to