Uploaded image for project: 'S2Click'
  1. S2Click
  2. CLICK-19

S2S2ClickUtils#copyObjectToFormでjava.util.DateのフィールドをDateFieldにコピーするとIllegalArgumentExceptionが発生する

XMLWordPrintable

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major Major
    • None
    • Affects Version/s: 0.4.0
    • Component/s: Framework
    • None

      S2S2ClickUtils#copyObjectToFormでjava.util.DateのフィールドをDateFieldにコピーするとIllegalArgumentExceptionが発生します。

      org.seasar.framework.beans.util.Copy#executeを使うとSeasar2標準のDateConverterが適用されてしまい、java.util.Dateがjava.lang.Stringへと変換されてしまっているようです。

      ひとまず、org.seasar.framework.beans.util.Copy#findDefaultConverterをオーバーライドしてnullを返すようにしたところ、上記問題は回避できました。

      標準のDateConverterを回避するよい方法はないでしょうか?

      スタックトレースは以下の通りです。

      [Click] [error] handleException: java.lang.IllegalArgumentException: Invalid object class: java.lang.String
      at net.sf.click.extras.control.DateField.setValueObject(DateField.java:511)
      at net.sf.click.util.ClickUtils.copyMapToFields(ClickUtils.java:2038)
      at net.sf.click.util.ClickUtils.copyObjectToForm(ClickUtils.java:844)
      at org.seasar.s2click.util.S2ClickUtils.copyObjectToForm(S2ClickUtils.java:97)
      at org.seasar.s2click.control.S2ClickForm.copyFrom(S2ClickForm.java:309)
      at org.seasar.s2click.control.S2ClickForm.copyFrom(S2ClickForm.java:314)

            Assignee:
            takezoe takezoe
            Reporter:
            mini40th mini40th
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: