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]