[Seasar-user:21785] Re: te-conditions生成用のJavaScriptが大量に出力される

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2014年 1月 20日 (月) 22:11:43 JST


小林 (koichik) です。

うーん、何が起きているのか想像が付かない現象ですね。
conditionの<script>要素は以下で出力しているのですが、

https://github.com/seasarorg/teeda/blob/master/teeda/teeda-extension/src/main/java/org/seasar/teeda/extension/util/ConditionUtil.java#L146

writerに淡々と出力しているだけなので、ここで</inputが
紛れ込むことはないはずです。
となると、writerに書き込まれた内容を別のところで上書き
している何かが存在することになるのですが、、、謎です。

ところで独自のPhaseListerやRendererListener等は
使ってますか?

2014年1月20日 20:35 shibata <shibata @ honeycomware.jp>:
> 小林様
>
> いつもお世話になっております。
> 柴田です。
>
>> 先のメールの内容だと、問題があるようには見えませんでした。
>> layoutFormの内側にはforEachは無いのですよね?
>
>  はい。先日お送りさせて頂きました内容の通りです。
>
>
>> まずはなんとかして再現手順を見つけていただくのが解決への
>> 近道かと思います。
>
>  再現手順さえわかれば調べようがあるのですが・・・。
>  不定期に発生しているのと、出力結果が異なっている事もあり、
>  正直どう質問をして良いかもわからない状態です。
>  こういう検証をしてみてというのがあれば是非教えて頂きたいです。
>
>
>> また、最初のメールだと同じ内容が繰り返されるとのことでしたが、
>> Base64エンコードされた文字列の内容も全く同じものが繰り返されて
>> いるのでしょうか?
>
>  こちらは調べてみたところ、全く同じ内容ではないのがわかりました。
>  1/15と1/20で発生した際、HTMLに出力された内容をまとめてみました。
>  稀に「</input」という文字がvalueの中に出力されています。
>  後の行になればなるほどvalue値の前の方で出力されています。
>
>  調べている中で、valueの外に出力されているケースもありました。
>  ■添付「2014.01.15_1721.txt」
>   20行目
>   38行目
>   56行目
>
>  ■添付「2014.01.20_1210.txt」
>   20行目
>
>  以下は「</input」がvalueの最後に出力されており、
>  「<input type='hidden' name='te-conditions'」の終了を示す
>  「/>";」が出力されていませんでした。
>  ■添付「2014.01.15_1721.txt」
>   5行目
>   23行目
>
>  特に規則性があるわけではないので、これといった決め手に
>  なるかはわかりませんが、ご確認頂けないでしょうか?
>
> 以上、よろしくお願い致します。
>
>
>
> (2014/01/20 19:15), Koichi Kobayashi wrote:
>>
>> 小林 (koichik) です。
>>
>> 先のメールの内容だと、問題があるようには見えませんでした。
>> layoutFormの内側にはforEachは無いのですよね?
>>
>> まずはなんとかして再現手順を見つけていただくのが解決への
>> 近道かと思います。
>>
>> また、最初のメールだと同じ内容が繰り返されるとのことでしたが、
>> Base64エンコードされた文字列の内容も全く同じものが繰り返されて
>> いるのでしょうか?
>>
>>
>> 2014年1月20日 12:37 shibata <shibata @ honeycomware.jp>:
>>>
>>> 小林様
>>>
>>> いつもお世話になっております。
>>> 柴田です。
>>>
>>> ご質問させて頂いている内容について、
>>> 本日も事象が発生致しました。
>>>
>>> 【出力された行数】
>>> HTMLの行数:5464
>>> te-conditions生成用のScript:356
>>>
>>> ※前回は以下の通りです。
>>> HTMLの行数:20725
>>> te-conditions生成用のScript:1480
>>>
>>> tomcat再起動直後は、問題なく動作しております。
>>> 出力されているte-conditions生成用のScriptも
>>> 1回のみ出力されており、行数も想定通り(494行)です。
>>>
>>> 前回、HTMLの構造を送らせて頂きましたが、
>>> 何かわかった事はございますでしょうか?
>>>
>>> layout.htmlでconditionを使用しているのが問題でしょうか?
>>> 他にteedaで作成したシステムでは同様の問題は起きておらず、
>>> 違いを探してみるとlayout.htmlくらいしかありませんでした。
>>>
>>> どんな事でも良いので、対処方法、調査方法など
>>> 情報を頂けないでしょうか。
>>>
>>> 以上、よろしくお願い致します。
>>>
>>>
>>> (2014/01/17 9:37), shibata @ honeycomware.jp wrote:
>>>>
>>>> 小林様
>>>>
>>>> いつもお世話になっております。
>>>> 柴田です。
>>>>
>>>> 返信が遅くなり申し訳ありません。
>>>>
>>>> HTMLを下記に記載致しますので、
>>>> ご確認をお願い致します。
>>>>
>>>> ■layout.html
>>>> <div>
>>>>       <div>
>>>>           <form id="layoutForm">
>>>>      ・
>>>>      ・
>>>>      ・
>>>>           <div>
>>>>               <ul>
>>>>                   <li><a id="_a" href="../a/index.html">MENU A</a></li>
>>>>
>>>>               <span id="isDisplayMenuB"  te:omittag="true">
>>>>                   <li><a id="_b" href="../b/index.html">MENU B</a></li>
>>>>               </span>
>>>>                   <li>
>>>>                       <span id="isDisplay"  te:omittag="true">
>>>>                           <a id="_c" href="../c/index.html">MENU C</a>
>>>>                       </span>
>>>>                   </li>
>>>>                   <li><hr /></li>
>>>>                   <li><a id="_d" href="../d/index.html">MENU D</a></li>
>>>>                   <li><hr /></li>
>>>>               <span id="isDisplay-2" te:omittag="true">
>>>>                   <li><a id="_e" href="../e/index.html">MENU E</a></li>
>>>>                   <li><hr /></li>
>>>>                   <li><a id="_f" href="../f/index.html">MENU F</a></li>
>>>>                   <li><hr /></li>
>>>>               </span>
>>>>                   <li><input type="submit" id="doLogout" value="ログアウト"
>>>> />
>>>> </li>
>>>>               </ul>
>>>>           </div>
>>>>      ・
>>>>      ・
>>>>      ・
>>>>           </form>
>>>>       </div>
>>>>       <div>
>>>>           <te:includeChildBody id="mainLayoutChildBody"/>
>>>>       </div>
>>>>      ・
>>>>      ・
>>>>      ・
>>>> </div>
>>>>
>>>>
>>>> ■includeするページ
>>>> <form id="xxxListForm">
>>>>>>>>>>>>>>>>       <div class="result">
>>>>           <div class="tblWrapper">
>>>>               <table class="tbl">
>>>>                   <thead>
>>>>                       <tr>
>>>>                           <th><input type="checkbox" /></th>
>>>>                           <th>項目A</th>
>>>>                           <th>項目B</th>
>>>>                           <th id="isDisplayCcc-th">項目C</th>
>>>>                           <th>項目D</th>
>>>>                           <th>項目E</th>
>>>>                           <th>項目F</th>
>>>>                           <th>項目G</th>
>>>>                           <th>項目H</th>
>>>>                       </tr>
>>>>                   </thead>
>>>>                   <tbody id="xxxItems">
>>>>                       <tr id="xxxItem">
>>>>                           <td align="center"><input type="checkbox"
>>>> id="checked" /></td>
>>>>                           <td><span id="displayAaa">確定</span><input
>>>> type="hi
>>>> dden" id="aaa" /></td>
>>>>                           <td><span id="bbb">00000000</span></td>
>>>>                           <td id="isDisplayCcc-td"><span
>>>> id="ccc">CCC</span></td>
>>>>                           <td><span id="ddd">DDD</span></td>
>>>>                           <td align="right"><span
>>>> id="eee">1000</span></td>
>>>>                           <td align="right"><span
>>>> id="fff">2014/01/17</span></td>
>>>>                           <td align="right"><span
>>>> id="displayGgg"></span><input type="hidden"
>>>> id="ggg" /></td>
>>>>                           <td align="right"><span id="fff"></span></td>
>>>>                       </tr>
>>>>                   </tbody>
>>>>               </table>
>>>>               <input type="hidden" id="xxxItemsSave"/>
>>>>           </div>
>>>>       </div>
>>>>>>>>>>>>>>>> </form>
>>>>
>>>> 他にも必要な情報がございましたらコメントをお願い致します。
>>>>
>>>>
>>>>> 小林 (koichik) です。
>>>>>
>>>>> 状況からforEachが絡んでる可能性がありそうですね。
>>>>> <form>、<te:include>、そしてconditionおよびforEachが
>>>>> 適用されている要素の関係 (HTML的な構造) を簡単に
>>>>> 教えてください。
>>>>>
>>>>>
>>>>> On Thu, 16 Jan 2014 11:31:30 +0900, shibata @ honeycomware.jp wrote:
>>>>>
>>>>>> 柴田と申します。
>>>>>> いつもお世話になっております。
>>>>>>
>>>>>> 不定期にシステムが動作しなくなる事象が発生しております。
>>>>>> 調査はしておりますが、何も手がかりがなく
>>>>>> 再現手順もわからない状態です。
>>>>>>
>>>>>> 情報が少なく大変申し訳ありませんが、
>>>>>> どんな事でも良いのでご助言頂ければ幸いです。
>>>>>>
>>>>>> ■使用しているバージョン
>>>>>> teeda-ajax-1.0.13-sp11.jar
>>>>>> teeda-core-1.0.13-sp11.jar
>>>>>> teeda-extension-1.0.13-sp11.jar
>>>>>> teeda-tiger-1.0.13-sp11.jar
>>>>>> s2-extension-2.4.45.jar
>>>>>> s2-framework-2.4.45.jar
>>>>>> s2-tiger-2.4.45.jar
>>>>>>
>>>>>> ■発生している事象
>>>>>> view配下に格納しているHTMLは662行なのですが、
>>>>>> 出力されているHTMLを見てみると20725行出力されていました。
>>>>>> 内容を確認したところ482行目から下記が出力され20725行目まで
>>>>>> 下記の情報と同じ内容が1480回表示されています。
>>>>>> ※正常に稼動している時は1回のみ表示されています。
>>>>>> -------------------------------------------
>>>>>> <script language="JavaScript" type="text/javascript">
>>>>>> <!--
>>>>>> var forms = ['layoutForm', 'xxxxxForm'];
>>>>>> for (var i = 0, len = forms.length; i < len; ++i) {
>>>>>>     var span = document.createElement('span');
>>>>>>     span.style.display = 'none';
>>>>>>     span.style.position = 'absolute';
>>>>>>     var form = document.getElementById(forms[i]);
>>>>>>     form.appendChild(span);
>>>>>>     span.innerHTML = "<input type='hidden' name='te-conditions'
>>>>>>
>>>>>> value='rO0ABXNyABdqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDTATlwQbMD7AgABWgALYWNjZXNzT3JkZXJ4cgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAABgdwgAAACAAAAAA3QAIGxheW91dEZvcm06aXNEaXNwbGF5RGVucHlvRGV0YWlsc3IAEWphdmEubGFuZy5Cb29sZWFuzSBygNWc+u4CAAFaAAV2YWx1ZXhwAXQAFGxheW91dEZvcm06aXNEaXNwbGF5cQB+AAV0ABZsYXlvdXRGb3JtOmlzRGlzcGxheS0ycQB+AAV4AA=='
>>>>>> />";
>>>>>> }
>>>>>>
>>>>>> //-->
>>>>>> </script>
>>>>>> -------------------------------------------
>>>>>>
>>>>>> ■その他
>>>>>>   ・1日1回WEB/APサーバーともに再起動を行っている。
>>>>>>   ・発生頻度は不定期(前回は20日前、前々回は7ヶ月前)
>>>>>>   ・isXxxの記述箇所はlayout.htmlに2箇所、メインページはなし。
>>>>>>   ・1度発生すると、tomcatを再起動しないとシステムが動作しない。
>>>>>>   ・事象が発生するとlayoutを使用していないページ以外動作しない。
>>>>>>    (どの画面を開いてもte-conditions生成用のScriptが大量に出力されています。
>>>>>>>>>>>>
>>>>>> 以上、よろしくお願い致します。
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Seasar-user mailing list
>>>>>> Seasar-user @ ml.seasar.org
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> {
>>>>>     name: "Koichi Kobayashi",
>>>>>     mail: "koichik @ improvement.jp",
>>>>>     blog: "http://d.hatena.ne.jp/koichik/",
>>>>>     twitter: "@koichik"
>>>>> }
>>>>>
>>>>> _______________________________________________
>>>>> Seasar-user mailing list
>>>>> Seasar-user @ ml.seasar.org
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Seasar-user mailing list
>>>> Seasar-user @ ml.seasar.org
>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>
>>>
>>>
>>> --
>>> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>>>
>>>  ハニカムウエア株式会社
>>>    柴田  康志
>>>     E-mail : shibata @ honeycomware.jp
>>>     TEL/FAX: 045-228-8610 / 045-228-8611
>>>     住所   : 〒231-0006
>>>          横浜市中区南仲通 4-49 福久ビル 8F-A
>>>
>>>     Mobile : 080-4407-4641
>>>              hw.shibata @ i.softbank.jp
>>>
>>>  <サポート窓口>
>>>   お問い合わせ窓口:support @ honeycomware.jp
>>>   受付時間 月〜金 :9:00〜17:30 土日祝日除く
>>>
>>> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>>> _______________________________________________
>>> Seasar-user mailing list
>>> Seasar-user @ ml.seasar.org
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>> _______________________________________________
>> Seasar-user mailing list
>> Seasar-user @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>
>
> --
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
>  ハニカムウエア株式会社
>    柴田  康志
>     E-mail : shibata @ honeycomware.jp
>     TEL/FAX: 045-228-8610 / 045-228-8611
>     住所   : 〒231-0006
>          横浜市中区南仲通 4-49 福久ビル 8F-A
>
>     Mobile : 080-4407-4641
>              hw.shibata @ i.softbank.jp
>
>  <サポート窓口>
>   お問い合わせ窓口:support @ honeycomware.jp
>   受付時間 月〜金 :9:00〜17:30 土日祝日除く
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内