ClassCastException when setting timeZone attribute in <f:convertDataTime> using 
EL
----------------------------------------------------------------------------------

         Key: MYFACES-1317
         URL: http://issues.apache.org/jira/browse/MYFACES-1317
     Project: MyFaces Core
        Type: Bug

    Versions: 1.1.3    
    Reporter: Paul Spencer


I am setting the time zone attribute for the tag <f:convertDataTime> from a 
backing bean.  This causes the following
ClassCastException in core 1.1.3

Caused by: java.lang.ClassCastException
        at 
org.apache.myfaces.shared_impl.taglib.core.ConvertDateTimeTagBase.setConverterTimeZone(ConvertDateTimeTagBase.java:165)
        at 
org.apache.myfaces.shared_impl.taglib.core.ConvertDateTimeTagBase.createConverter(ConvertDateTimeTagBase.java:85)
        at javax.faces.webapp.ConverterTag.doStartTag(ConverterTag.java:63)

If I hard code the time zone in the attribute, i.e. timeZone="GMT-05:00", no 
exception is thrown. 

When I changed my method getTimeZone() to return a TimeZone, things worked as 
expected.

I guess my confusion comes from the TLD Documentation, 
http://myfaces.apache.org/impl/tlddoc/index.html.

  "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)."

I read this to mean that the converter would converter would treat String 
value-binding the same way
as a String value.  Below is a coded version of my expectation.

  if (UIComponentTag.isValueReference(value))
  {
    ValueBinding vb = facesContext.getApplication().createValueBinding(value);
    TimeZone timeZone;
    Object value = vb.getValue(facesContext);
    if (value instanceof TimeZone)
    {
      timeZone = (TimeZone) value;
    }
    else
    {
      timeZone = TimeZone.getTimeZone(value.toString())
    }
    converter.setTimeZone(timeZone);
  }


>From  Matthias Wessendorf:
Paul- 

good catch. You are right. RI TLD Doc says the same.

Create a bug for MyFaces Core Jira project and asign the ticket please to me !
(matzew)

Thanks,
Matthias 


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to