Uploaded image for project: 'S2Struts'
  1. S2Struts
  2. STRUTS-39

FormBeanにjava.math.BigDecimalクラスのプロパティがあるとjava.math.BigDecimalクラスのメソッドに対して型検証が自動付加され、検証時に例外が発生する

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.2.9, 1.3.0-beta-3
    • Affects Version/s: 1.3.0-beta-2, 1.2.8
    • Component/s: S2Struts
    • None

      [Seasar-user:6101]

      以前、検証対象になっているDTOに java.sql.Date が入っている場合
      例外が発生しましたので対応していただいたのですが、
      同じような現象が、java.math.BigDecimal でも起こってしまいました。

      デバッグして確認したところ
      根本の原因としては、BigDecimal にはsetScaleメソッドが存在するのですが
      getScaleメソッドが存在しないため、実際に検証しようとしたときに
      getScaleメソッドが見つからないと例外を起こしていました。

      org.seasar.struts.validator.factory.AbstractValidatorAnnotationHandler
      の registerFields(Form, Field, BeanDesc) には
      hasMethodForValidationメソッドを使用して、指定のプロパティが検証対象であるか
      否かを
      判断しているところがあります。
      そこで、
      hasMethodForValidationメソッドでの判断で、今のところ
      propDesc.hasWriteMethod()
      の値のみで判断していますので、
      propDesc.hasReadMethod()
      の値も使用して判断してみては、と思うのですが、いかがでしょうか。

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

              Created:
              Updated:
              Resolved: