On 07/01/2013 10:03, Emmanuel Poitier wrote:
> All,
> 
> This is my first post for the Tomcat project, and I do hope it is the
> right place for this question, as it is involving a change in the
> development branch.

This is one of a the few questions that could be asked on either list.
As a general rule, if you are unsure you should use the users mailing list.

> I have implemented my own EL based on the EL API. The EL API interface
> provided in Tomcat I used up to v7.0.12 made all my test pass, and then
> when I switched to v7.0.14, I have two errors returned when accessing an
> Integer instance from a Map of properties.
> 
> Please see below the patch I have extracted between v7.0.12 and v7.0.14
> explaining the issue I have seen and I would like to understand the
> reason of returning an Object.class and not the class type of the value
> stored ?
> 
> Thanks in advance for your help, and if this is not the right place I
> should ask this question, just tell me and I will send it to the user
> mailing list.

If you want to understand the reason for a change, then the first place
you should look is the change history for the files in question.

The ASF provides a web based interface to this at [1]. The organisation
of Tomcat's part of the tree is described in [2]. The history you need
to read is [3] which will lead you to [4] and the Expression Language
2.2 specification sections 2.14.7 and 2.15.7

all of which will explain why the change was made.

Mark


[1] http://svn.apache.org/viewvc/
[2] http://tomcat.apache.org/svn.html
[3]
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ListELResolver.java?view=log
[4] https://issues.apache.org/bugzilla/show_bug.cgi?id=51177


> 
> diff -uNrbB javax/el/ListELResolver.java
> ../../apache-tomcat-7.0.14-src/java/javax/el/ListELResolver.java
> --- javax/el/ListELResolver.java    2011-04-01 17:16:46 +0000
> +++ ../../apache-tomcat-7.0.14-src/java/javax/el/ListELResolver.java   
> 2011-05-09 21:44:02 +0000
> @@ -74,8 +74,7 @@
>                  throw new PropertyNotFoundException(
>                          new
> ArrayIndexOutOfBoundsException(idx).getMessage());
>              }
> -            Object obj = list.get(idx);
> -            return (obj != null) ? obj.getClass() : null;
> +            return Object.class;
>          }
>  
>          return null;
> diff -uNrbB javax/el/MapELResolver.java
> ../../apache-tomcat-7.0.14-src/java/javax/el/MapELResolver.java
> --- javax/el/MapELResolver.java    2011-04-01 17:16:46 +0000
> +++ ../../apache-tomcat-7.0.14-src/java/javax/el/MapELResolver.java   
> 2011-05-09 21:44:02 +0000
> @@ -64,8 +64,7 @@
>  
>          if (base instanceof Map<?,?>) {
>              context.setPropertyResolved(true);
> -            Object obj = ((Map<?,?>) base).get(property);
> -            return (obj != null) ? obj.getClass() : null;
> +            return Object.class;
>          }
>         
>          return null;
> 
> Best regards,
> -- 
> Emmanuel Poitier- Chief Executive Officer (CEO)
> Enman
> 
> Telephone:+33 (0)2 54 67 15 38        
>       Mobile:+33 (0)64 9461 586
> Email:emmanuel.poit...@enman.fr       
>       Web site:http://enman.fr
> 


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

Reply via email to