Uploaded image for project: 'Mayaa'
  1. Mayaa
  2. MAYAA-67

ServiceCycle のgetOriginalNode().toString() が無限ループする。(StackOverFlow)

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      ServiceProvider の templateBuilder の optimizeオプションがtrueの時。(デフォルト設定)

      Description

      mayaaのスクリプトから、裏技的にではあるが、
      「originalNode」を参照することで、m:idで紐ついた、HTMLテンプレート内の対象タグの情報が参照できるが、「originalNode」と書くと、SpecificationNodeImplのtoString()の中で親ノードの参照が無限ループする。

      この問題の原因を調査し対応する。

        Activity

        Hide
        katochin katochin added a comment -

        optimize=trueの時だけ起こるので、1.1以降に埋め込んだと考えられるので、調査・対応する。

        Show
        katochin katochin added a comment - optimize=trueの時だけ起こるので、1.1以降に埋め込んだと考えられるので、調査・対応する。
        Hide
        katochin katochin added a comment -

        ノードの最適化処置の中で、最適化済みのノードツリーを構築するが、 HTMLタグの1つに対して複数のプロセッサがぶら下がることがある。
        この時、並列にぶら下がっているはずのプロセッサのoriginalNodeを、最適化結果ノードツリーに対して親子関係にして登録をしてしまっていた。
        これが原因となり、その後に続く、最適化結果ノードツリーから各ノードへのフィードバック(ノードの関係性の再構築)を行うときに、
        parentNodeに、自身のnodeをセットしてしまうというケースが埋め込まれることになり、パスを辿って文字列を表現する、toString()が無限ループになるという結果に陥っていた。

        Show
        katochin katochin added a comment - ノードの最適化処置の中で、最適化済みのノードツリーを構築するが、 HTMLタグの1つに対して複数のプロセッサがぶら下がることがある。 この時、並列にぶら下がっているはずのプロセッサのoriginalNodeを、最適化結果ノードツリーに対して親子関係にして登録をしてしまっていた。 これが原因となり、その後に続く、最適化結果ノードツリーから各ノードへのフィードバック(ノードの関係性の再構築)を行うときに、 parentNodeに、自身のnodeをセットしてしまうというケースが埋め込まれることになり、パスを辿って文字列を表現する、toString()が無限ループになるという結果に陥っていた。
        Hide
        katochin katochin added a comment -

        ツリーの子要素を追加する際に、親要素が追加しようとしているノードかどうかをチェックして、同じであれば追加しないように修正した。
        Rev:3440

        Show
        katochin katochin added a comment - ツリーの子要素を追加する際に、親要素が追加しようとしているノードかどうかをチェックして、同じであれば追加しないように修正した。 Rev:3440

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development