If 'list' is a java.util.ArrayList, shouldn't the variable be cast to an integer representing its size in the following expression: <jstl:if test="${list < 10}"> rather than failing with 'Attempt to coerce a value of type "java.util.ArrayList" to type "java.lang.Long"'? Note that the method List.size() can't be called, as list.size is mapped to either List.get("size") or List.getSize(), neither of which exist.
That's not a bad idea; in fact, I think it might work. However, the JSTL 1.0 specification does call for it, so this is not the right venue to offer the suggestion. If you mail jsr-52-comments@jcp.org, the comment will be recorded for future versions of JSTL.
Of course, I meant "does _not_ call for it". :-)