On 26/10/2014 22:40, Konstantin Kolinko wrote: > Hi! > > This is a comment on the following commits: > > URL: http://svn.apache.org/r1633806 > Log: > When coercing an object to a given type, only attempt coercion to an > array if both the object type and the target type are an array type. > > 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() > > > Issues: > > 1) General issue: > In r1607906 there was added a conversion support for arrays into > ELSupport.coerceToType() and r1633806 fixed a bug in it. > > My understanding is that the method ELSupport.coerceToType() > implements conversion rules from EL specification chapter "Type > Conversion" (ch.1.23 in EL 3.0). > > My concern is that EL specification does not specify such conversion > for array elements. > > As such, the varargs support fix needs a different implementation that > does not change the ELSupport.coerceToType() method.
It is a grey area. Those coercion rules get used in multiple places and some parts of the EL spec explicitly or implicitly require array support. Unless we get a complaint that this feature actually breaks something (which I view as unlikely) I'm of the view we treat this as a Tomcat specific extension and leave it in. Meanwhile when the EL.next EG starts up, I'll raise the issue of array support for coercion. > 2) Technical issue: > The ELSupport.coerceToArray() method does not support arrays of > primitives. It class-casts its argument "(Object[]) obj", but that > will fail for arrays of primitives. The correct way is to use the > following method to access array elements: > java.lang.reflect.Array.get(Object, int): Object Fair point. I'll take a look at a fix. > 3) Bikeshed: > Maybe mention BZ 56425#c6 in changelog for r1607906. Feel free to paint that particular bikeshed if you wish. > I noted another unrelated difference vs specification in > coerceToType() method - filed BZ 57148. Thanks. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org