ConvertDateTimeTag timeZone does not work with ValueExpression of return type String

Details

Description

A always get an exception like this when I bind a VE avaluating to a TimeZone pattern (GMT+1) to the timeZone property of the convertDateTime converter:
java.lang.IllegalArgumentException: Cannot convert GMT+1 of type class java.lang.String to class java.util.TimeZone

This worked for MyFaces 1.1 and since we are currently migrating this breaks our code.

I believe the root cause for this problem is the definition of the convertDateTimeTag in the myfaces tld, which will never allow VE with return types other than java.util.TimeZone to be bound:

<attribute>

<description><![CDATA[The time zone to use instead of GMT (the default timezone). When
this value is a value-binding to a TimeZone instance, that
timezone is used. Otherwise this value is treated as a String
containing a timezone id, ie as the ID parameter of method
java.util.TimeZone.getTimeZone(String).]]></description>

Leonardo Uribe
added a comment - 16/May/09 00:14 The code on ConvertDateTimeTag is right, the problem comes from tld generation. Really is an "exception" to the rule, so the best is change on the velocity template. Thanks for point this issue.