Just ran a couple quick tests, and it looks like integer literals are
converted to Long. I completely blocked on the fact that HashMap will
also attempt to do aLong.equals(anInteger), which will fail.

On Fri, Oct 17, 2008 at 12:20 PM, Kris Schneider <[EMAIL PROTECTED]> wrote:
> HashMap will essentially just use the hashCode value of the key to do
> the lookup. So, when using "3", the hashCode value is 51. But for both
> Integer(3) and Long(3), the hashCode value is 3. If the conversion is
> actually to BigDecimal, then the hashCode value of BigDecimal(3) is 93
> and that might explain the miss even when using a numeric literal.
>
> On Fri, Oct 17, 2008 at 12:04 PM, Gabriel Belingueres
> <[EMAIL PROTECTED]> wrote:
>>
>> I now I realize that it is returning nothing on ${map[param.myid]} with
>> HashMap. But surprisingly even though I know for sure that map[3] exists,
>> then ${map[3]} (with the literal 3) returns nothing too...I remember
>> previously having an issue with this because IIRC JSTL converts the 3 to a
>> Long, not to Integers.
>>
>>
>> Kris Schneider wrote:
>>>
>>> It looks like it might be a difference in the way HashMap.containsKey
>>> and TreeMap.containsKey are implemented. If you look at the API docs,
>>> TreeMap will throw ClassCastException but HashMap will not. When you
>>> were using HashMap, did you actually get values returned or null?
>>>
>>> On Fri, Oct 17, 2008 at 10:48 AM, Gabriel Belingueres
>>> <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I was accessing a Map<Integer, MyClass> implemented with a
>>>> HashMap<Integer,
>>>> MyClass> from JSTL (v.1.1.2) using the following expression:
>>>>
>>>> ${map[param.myid].name} and it worked well.
>>>>
>>>> However, when I changed the implementation to a TreeMap<Integer, MyClass>
>>>> the expression stop working because it throws ClassCastException saying
>>>> that
>>>> can't compare Strings with Integers.
>>>>
>>>> I know that ${param.myid} should resolve to a String, but I wanted to
>>>> clarify if this is a normal behaviour or it is a bug, since it seems to
>>>> be
>>>> converting to Integer for HashMap but not for TreeMap.
>>>>
>>>> Best regards,
>>>> Gabriel
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/ClassCastException-when-changing-from-HashMap-to-TreeMap-tp20034818p20034818.html
>>>> Sent from the Taglibs - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Kris Schneider <mailto:[EMAIL PROTECTED]>
>>> directThought  <http://www.directThought.com/>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>> --
>> View this message in context: 
>> http://www.nabble.com/ClassCastException-when-changing-from-HashMap-to-TreeMap-tp20034818p20036227.html
>> Sent from the Taglibs - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
> --
> Kris Schneider <mailto:[EMAIL PROTECTED]>
> directThought  <http://www.directThought.com/>
>



-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
directThought  <http://www.directThought.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to