Uploaded image for project: 'Ymir'
  1. Ymir
  2. YMIR-136

Collectionのインジェクション時にHotdeployが正しく行われない。

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 0.9.2
    • Affects Version/s: 0.9.1
    • Component/s: ymir-core
    • None

      Hotdeployが有効な状態で、Collectionのインスタンスを@Inアノテーションを付加してPageにインジェクションすると、その要素を取得しようとしたときにClassCastExceptionが発生する。

      原因:
      org.seasar.ymir.ScopeAttribute#injectTo(Object component) 内で、Hotdeployを適用する条件を以下のように実装しているため。(ラップしている一番外側のタイプしか見ていないため。)

      if (value != null
      && YmirContext.isUnderDevelopment()
      && !writeMethod_.getParameterTypes()[0]
      .isAssignableFrom(value.getClass()))

      { // 開発時はHotdeployのせいで見かけ上型が合わないことがありうる。 // そのため開発時で見かけ上型が合わない場合はオブジェクトを再構築する。 value = hotdeployManager_.fit(value); }

            Assignee:
            skirnir skirnir
            Reporter:
            yumeto Yumeto Yamagishi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: