2014-07-04 22:47 GMT+04:00 <[email protected]>:
> 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.
> + }
> + boolean isPrimitive =
> PRIMITIVES.contains(parameterTypeName);
> ...
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]