Author: kkolinko Date: Sat Feb 13 17:55:11 2010 New Revision: 909860 URL: http://svn.apache.org/viewvc?rev=909860&view=rev Log: split EL fixes vote into individual patches, for clarity veto the Enum EL patch backport
Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=909860&r1=909859&r2=909860&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Sat Feb 13 17:55:11 2010 @@ -107,59 +107,64 @@ * Fix various EL TCK failures http://svn.apache.org/viewvc?view=rev&rev=899653 (signatures) + +1: markt, kkolinko + -1: + http://svn.apache.org/viewvc?view=rev&rev=899769 (CCE expected) http://svn.apache.org/viewvc?view=rev&rev=899770 (CCE expected) + +1: markt, kkolinko + -1: + kkolinko: Maybe better name for that message, because it says about + arrays, yet name is rather generic + http://svn.apache.org/viewvc?view=rev&rev=899783 (ELException expected) + +1: markt, kkolinko + -1: + http://svn.apache.org/viewvc?view=rev&rev=899788 (PNFE expected) + +1: markt, kkolinko + -1: + kkolinko: I think o.a.jasper.el.ELResolverImpl#getType(ELContext,Object,Object) + should likewise throw a PropertyNotFoundException instead of returning null. + I have no test, though. + http://svn.apache.org/viewvc?view=rev&rev=899792 (ELException rather than IAE) + +1: markt, kkolinko + -1: + http://svn.apache.org/viewvc?view=rev&rev=899916 (ELException rather than IAE) + +1: markt, kkolinko + -1: + http://svn.apache.org/viewvc?view=rev&rev=899918 (Enum coercion test cases) http://svn.apache.org/viewvc?view=rev&rev=899919 (Enum coercion bug) + +1: markt + -1: kkolinko: + As far as I am reading, there is no provision in the EL + spec, that enum -> enum conversion can be performed by using its + string value. + + The current TC 6.0 behaviour here will be a ClassCastException, trying + to assign the value, and that should be an ELException instead. + + In EL 2.1 and 2.2 specifications chapter 1.18.6 'Coerce A to an Enum Type T' says: + "If A is a String call Enum.valueOf(T.getClass(), A) and return the result." + Thus, our + result = Enum.valueOf(type, obj.toString()); + should only be applicable if obj is a String. + + In ELSupport#coerceToType(Object, Class), that implements 1.18.7, we + already throw an ELException if A is not a String. + http://svn.apache.org/viewvc?view=rev&rev=899935 (ELException expected) - http://svn.apache.org/viewvc?view=rev&rev=899949 (ignore whitespace on comp) - +1: markt - +1: kkolinko: - 899653: OK. We do not have @Deprecated annotations in those classes, - so the patch is about adding @SuppressWarnings("dep-ann") - 899769: With 899770 that backports the message string used here. - 899770: OK - (Maybe better name for that message, because it says about arrays, - yet name is rather generic). - 899783: OK - 899788: OK - (Likewise, o.a.jasper.el.ELResolverImpl#getType(ELContext,Object,Object) - should probably throw a PropertyNotFoundException, instead of returning null. - I have no proof, though.) - 899792: OK - 899916: OK - - 899918, 899919: OK, but there is probably an omission in the EL spec: - I do not see why we do conversion Enum->Enum via toString() call. - - The EL spec chapter 1.18.6 'Coerce A to an Enum Type T' says - "If A is a String call Enum.valueOf(T.getClass(), A) and return the result." - It does not say what to do if A is not a String. (There is no - explicit "Otherwise, error" statement below). - - In 1.18.7 (aka ELSupport#coerceToType(Object, Class)) we throw - an error if A is not a String. Even if T has a PropertyEditor, - we do not do editor.setAsText(obj.toString()), as the spec does - not say to do so, but throw an exception. - - (In 1.18.7 the spec says "Otherwise, apply T's PropertyEditor", - but PropertyEditor can be applied only is A is a String. Am I right?) - - Without 899919 patch we will throw a ClassCaseException when object type - is a different type of enum, but other values are still converted - via toString() call. The patch makes that behaviour consistent, even - if I do not understand why it is allowed. - - 899935: OK - 899949: OK, - but why ValueExpressionImpl.equals() is implemented as comparing - the hash codes? What will happen with false positives? + +1: markt, kkolinko + -1: - -1: + http://svn.apache.org/viewvc?view=rev&rev=899949 (ignore whitespace on comp) + +1: markt, kkolinko + -1: + kkolinko: Why ValueExpressionImpl.equals() is implemented as comparing + the hash codes? What will happen with false positives? * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48627 Regression in re-working of EL parsing @@ -176,7 +181,7 @@ Provide option to stop server if there is an error during init Port of Filip's patch from trunk http://svn.apache.org/viewvc?view=revision&revision=752323 - +1: markt + +1: markt, kkolinko -1: * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48645 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org