<div dir="ltr"><div dir="ltr" class="gmail_msg"><div class="gmail_msg">suga です。</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">現在コミッタでMavenのCentral Repositoryへdeployする準備中です。</div><div class="gmail_msg">もうしばらくお待ちください。</div><div class="gmail_msg"><br class="gmail_msg"></div></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">2017年3月16日(木) 20:47 Hara Hara &lt;<a href="mailto:iso_hara@hotmail.com" class="gmail_msg" target="_blank">iso_hara@hotmail.com</a>&gt;:<br class="gmail_msg"></div></div><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr" class="gmail_msg">
<div id="m_3046129439723014293m_1246368635060259202divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Meiryo,&#39;\0030e1\0030a4\0030ea\0030aa&#39;,Sans-Serif" class="gmail_msg">
<p class="gmail_msg"></p>
<div class="gmail_msg">suga様 水野様<i class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
お世話になっております。 石川と申します。</i><br class="gmail_msg">
</div>
<p class="gmail_msg">水野様、確認が遅くなりまして申し訳ございません、お心添えいただきありがとうございました。</p>
<p class="gmail_msg">suga様、大変申し訳ございません、ご対応頂きましたバージョンは公式サイトでリリース頂くことは可能でしょうか。</p>
<p class="gmail_msg">チームの規定で公式にリリースされたものしか取り扱うことが出来ず、</p>
<p class="gmail_msg">お手数でございますが、ご検討いただけますと<span class="m_3046129439723014293m_1246368635060259202st gmail_msg"><em class="gmail_msg">幸甚</em>に存じま</span>す。<br class="gmail_msg">
</p>
<p class="gmail_msg"></p>
<br class="gmail_msg">
何卒よろしくお願いいたします。<br class="gmail_msg">
<div style="color:rgb(0,0,0)" class="gmail_msg">
<div class="gmail_msg">
<hr style="display:inline-block;width:98%" class="gmail_msg">
<div id="m_3046129439723014293m_1246368635060259202x_divRplyFwdMsg" dir="ltr" class="gmail_msg"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000" class="gmail_msg"><b class="gmail_msg">差出人:</b> <a href="mailto:mayaa-user-bounces@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user-bounces@ml.seasar.org</a> &lt;<a href="mailto:mayaa-user-bounces@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user-bounces@ml.seasar.org</a>&gt; が 水野謙 &lt;<a href="mailto:mizuno.ken@interfactory.co.jp" class="gmail_msg" target="_blank">mizuno.ken@interfactory.co.jp</a>&gt; の代理で送信<br class="gmail_msg">
<b class="gmail_msg">送信日時:</b> 2017年1月23日 9:28<br class="gmail_msg">
<b class="gmail_msg">宛先:</b> Discussion list for mayaa users<br class="gmail_msg">
<b class="gmail_msg">件名:</b> [mayaa-user:1064] Re: ReferenceCacheの不具合報告</font>
<div class="gmail_msg"> </div>
</div>
</div>
<font size="2" class="gmail_msg"><span style="font-size:10pt" class="gmail_msg">
<div class="m_3046129439723014293m_1246368635060259202PlainText gmail_msg"></div></span></font></div></div></div><div dir="ltr" class="gmail_msg"><div id="m_3046129439723014293m_1246368635060259202divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Meiryo,&#39;\0030e1\0030a4\0030ea\0030aa&#39;,Sans-Serif" class="gmail_msg"><div style="color:rgb(0,0,0)" class="gmail_msg"><font size="2" class="gmail_msg"><span style="font-size:10pt" class="gmail_msg"><div class="m_3046129439723014293m_1246368635060259202PlainText gmail_msg">suga さん、<br class="gmail_msg">
<br class="gmail_msg">
水野です。迅速な対応ありがとうございます。<br class="gmail_msg">
<br class="gmail_msg">
2017年1月22日 21:19 suga &lt;<a href="mailto:ko.suga@gmail.com" class="gmail_msg" target="_blank">ko.suga@gmail.com</a>&gt;:<br class="gmail_msg">
&gt; suga です。<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; この件、下記にて対応しました。<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; <a href="https://github.com/seasarorg/mayaa/issues/3" id="m_3046129439723014293m_1246368635060259202LPlnk843906" class="gmail_msg" target="_blank">https://github.com/seasarorg/mayaa/issues/3</a>
</div></span></font></div></div></div><div dir="ltr" class="gmail_msg"><div id="m_3046129439723014293m_1246368635060259202divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Meiryo,&#39;\0030e1\0030a4\0030ea\0030aa&#39;,Sans-Serif" class="gmail_msg"><div style="color:rgb(0,0,0)" class="gmail_msg"><font size="2" class="gmail_msg"><span style="font-size:10pt" class="gmail_msg"><div class="m_3046129439723014293m_1246368635060259202PlainText gmail_msg"><div id="m_3046129439723014293m_1246368635060259202LPBorder_GT_14896643279820.6220035106648716" style="margin-bottom:20px;overflow:auto;width:100%;text-indent:0px" class="gmail_msg">
<table id="m_3046129439723014293m_1246368635060259202LPContainer_14896643279770.17798474766430328" style="width:90%;background-color:rgb(255,255,255);overflow:auto;padding-top:20px;padding-bottom:20px;margin-top:20px;border-top:1px dotted rgb(200,200,200);border-bottom:1px dotted rgb(200,200,200)" cellspacing="0" class="gmail_msg">
<tbody class="gmail_msg">
<tr style="border-spacing:0px" valign="top" class="gmail_msg">
<td id="m_3046129439723014293m_1246368635060259202ImageCell_14896643279780.2909416296318419" style="width:250px;display:table-cell;padding-right:20px" colspan="1" class="gmail_msg">
<div id="m_3046129439723014293m_1246368635060259202LPImageContainer_14896643279780.2688456545616049" style="background-color:rgb(255,255,255);height:250px;margin:auto;display:table;width:250px" class="gmail_msg">
<a id="m_3046129439723014293m_1246368635060259202LPImageAnchor_14896643279780.20837018381901928" style="display:table-cell;text-align:center" href="https://github.com/seasarorg/mayaa/issues/3" class="gmail_msg" target="_blank"><img style="display:inline-block;max-width:250px;max-height:250px;height:250px;width:250px;border-width:0px;vertical-align:bottom" id="m_3046129439723014293m_1246368635060259202LPThumbnailImageID_14896643279780.7564971085910358" height="250" width="250" src="https://avatars3.githubusercontent.com/u/1319421?v=3&amp;s=400" class="gmail_msg"></a></div>
</td>
<td id="m_3046129439723014293m_1246368635060259202TextCell_14896643279790.2448660222150959" style="vertical-align:top;padding:0px;display:table-cell" colspan="2" class="gmail_msg">
<div id="m_3046129439723014293m_1246368635060259202LPRemovePreviewContainer_14896643279790.2887422810917569" class="gmail_msg"></div>
<div id="m_3046129439723014293m_1246368635060259202LPTitle_14896643279790.8673408543710701" style="color:rgb(0,120,215);font-weight:400;font-size:21px;font-family:&quot;Meiryo UI&quot;,&quot;MS UI Gothic&quot;,&quot;MS PGothic&quot;,&quot;\00ff2d\00ff33  \00ff30\0030b4\0030b7\0030c3\0030af&quot;,&quot;MS Gothic&quot;,&quot;\00ff2d\00ff33  \0030b4\0030b7\0030c3\0030af&quot;,sans-serif;line-height:21px" class="gmail_msg">
<a id="m_3046129439723014293m_1246368635060259202LPUrlAnchor_14896643279800.757952374985536" style="text-decoration:none" href="https://github.com/seasarorg/mayaa/issues/3" class="gmail_msg" target="_blank">ReferenceCacheのcontains, removeが動作しない · Issue #3 ...</a></div>
<div id="m_3046129439723014293m_1246368635060259202LPMetadata_14896643279800.30432827611004254" style="margin:10px 0px 16px;color:rgb(102,102,102);font-weight:400;font-family:&quot;Meiryo UI&quot;,&quot;MS UI Gothic&quot;,&quot;MS PGothic&quot;,&quot;\00ff2d\00ff33  \00ff30\0030b4\0030b7\0030c3\0030af&quot;,&quot;MS Gothic&quot;,&quot;\00ff2d\00ff33  \0030b4\0030b7\0030c3\0030af&quot;,sans-serif;font-size:14px;line-height:14px" class="gmail_msg">
<a href="http://github.com" class="gmail_msg" target="_blank">github.com</a></div>
<div id="m_3046129439723014293m_1246368635060259202LPDescription_14896643279810.8269841544692739" style="display:block;color:rgb(102,102,102);font-weight:400;font-family:&quot;Meiryo UI&quot;,&quot;MS UI Gothic&quot;,&quot;MS PGothic&quot;,&quot;\00ff2d\00ff33  \00ff30\0030b4\0030b7\0030c3\0030af&quot;,&quot;MS Gothic&quot;,&quot;\00ff2d\00ff33  \0030b4\0030b7\0030c3\0030af&quot;,sans-serif;font-size:14px;line-height:20px;max-height:100px;overflow:hidden" class="gmail_msg">
[mayaa-user:1061] より。 ReferenceCacheのcontains, removeが動作しない。 addする際にReferenceでwrapしているため、比較する際にはそれを ...</div>
</td>
</tr>
</tbody>
</table>
</div></div></span></font></div></div></div><div dir="ltr" class="gmail_msg"><div id="m_3046129439723014293m_1246368635060259202divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Meiryo,&#39;\0030e1\0030a4\0030ea\0030aa&#39;,Sans-Serif" class="gmail_msg"><div style="color:rgb(0,0,0)" class="gmail_msg"><font size="2" class="gmail_msg"><span style="font-size:10pt" class="gmail_msg"><div class="m_3046129439723014293m_1246368635060259202PlainText gmail_msg">
<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; 2017年1月17日(火) 9:18 suga &lt;<a href="mailto:ko.suga@gmail.com" class="gmail_msg" target="_blank">ko.suga@gmail.com</a>&gt;:<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; suga です。<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; ありがとうございます。<br class="gmail_msg">
&gt;&gt; 私の方でも確認して修正します。<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt;<br class="gmail_msg">
&gt;&gt; 2017年1月16日(月) 20:16 水野謙 &lt;<a href="mailto:mizuno.ken@interfactory.co.jp" class="gmail_msg" target="_blank">mizuno.ken@interfactory.co.jp</a>&gt;:<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; お世話になっております。<br class="gmail_msg">
&gt;&gt;&gt; インターファクトリーの水野と申します。私自身がこのMLに投稿するのは初めてですが、<br class="gmail_msg">
&gt;&gt;&gt; 以前弊社に在籍していた石上さん経由で大変お世話になっておりました。<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; さて表題の件ですが、NamespaceImpl#getInstance および deserialize に書かれている下記ロジックが<br class="gmail_msg">
&gt;&gt;&gt; 期待通りに動作していないと思われる不具合を発見しました。<br class="gmail_msg">
&gt;&gt;&gt;             if (_cache.contains(namespace) == false) {<br class="gmail_msg">
&gt;&gt;&gt;                 _cache.add(namespace);<br class="gmail_msg">
&gt;&gt;&gt;             }<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; ReferenceCache#add にて、要素を SoftReference 等でラップしてから追加していますが、<br class="gmail_msg">
&gt;&gt;&gt; contains メソッドは ArrayList の実装がそのまま使われるため、常に false を返していると思われます。<br class="gmail_msg">
&gt;&gt;&gt; このため、重複する要素が多数 _cache に追加され、弊社本番環境では起動後半日の運用で<br class="gmail_msg">
&gt;&gt;&gt; 2万を超える要素数となっておりました。<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; ArrayList#contains は内部的に indexOf を呼び出しているので、下記のように indexOf を<br class="gmail_msg">
&gt;&gt;&gt; オーバーライドすることで解消できそうです。<br class="gmail_msg">
&gt;&gt;&gt;     public int indexOf(Object o) {<br class="gmail_msg">
&gt;&gt;&gt;         for (int i = 0; i &lt; size(); i++) {<br class="gmail_msg">
&gt;&gt;&gt;             if (((Reference)get(i)).get().equals(o)) {<br class="gmail_msg">
&gt;&gt;&gt;                 return i;<br class="gmail_msg">
&gt;&gt;&gt;             }<br class="gmail_msg">
&gt;&gt;&gt;         }<br class="gmail_msg">
&gt;&gt;&gt;         return -1;<br class="gmail_msg">
&gt;&gt;&gt;     }<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; なお、こちらは未検証ですが、URLImpl#setValue にある下記ロジックにも類似の問題がありそうです。<br class="gmail_msg">
&gt;&gt;&gt;         if (_value != null) {<br class="gmail_msg">
&gt;&gt;&gt;             _cache.remove(this);<br class="gmail_msg">
&gt;&gt;&gt;         }<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; 参考までに本不具合に気付いた経緯についてですが、弊社本番環境にてごくまれに、<br class="gmail_msg">
&gt;&gt;&gt; 性能が突然極端に低下し、CPUリソースが枯渇する現象が発生しておりました。<br class="gmail_msg">
&gt;&gt;&gt; スレッドダンプを取得したところNamespaceImpl.getInstanceにてモニタ取得待ちで待機している<br class="gmail_msg">
&gt;&gt;&gt; スレッドが大量にあり、付近のロジックを調査して発見した次第です。<br class="gmail_msg">
&gt;&gt;&gt; だいぶ前の話ではありますが、[mayaa-user:1027] にて石川様が報告されている現象も<br class="gmail_msg">
&gt;&gt;&gt; 同一の原因かもしれません。<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; ご確認の上、修正のご検討をいただけますでしょうか。<br class="gmail_msg">
&gt;&gt;&gt; なお、弊社環境用には既に修正版を作成済みのため、弊社側の状況としては特に急いではおりません。<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; よろしくお願いいたします。<br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; --<br class="gmail_msg">
&gt;&gt;&gt; 株式会社インターファクトリー   水野 謙<br class="gmail_msg">
&gt;&gt;&gt; <a href="mailto:mizuno.ken@interfactory.co.jp" class="gmail_msg" target="_blank">mizuno.ken@interfactory.co.jp</a><br class="gmail_msg">
&gt;&gt;&gt;<br class="gmail_msg">
&gt;&gt;&gt; 〒102-0071<br class="gmail_msg">
&gt;&gt;&gt; 東京都千代田区富士見2-10-2 飯田橋グラン・ブルーム4階<br class="gmail_msg">
&gt;&gt;&gt; TEL:03-5211-0056 / FAX:03-5211-0059<br class="gmail_msg">
&gt;&gt;&gt; <a href="http://www.interfactory.co.jp" class="gmail_msg" target="_blank">http://www.interfactory.co.jp</a><br class="gmail_msg">
&gt;&gt;&gt; _______________________________________________<br class="gmail_msg">
&gt;&gt;&gt; mayaa-user mailing list<br class="gmail_msg">
&gt;&gt;&gt; <a href="mailto:mayaa-user@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user@ml.seasar.org</a><br class="gmail_msg">
&gt;&gt;&gt; <a href="https://ml.seasar.org/mailman/listinfo/mayaa-user" class="gmail_msg" target="_blank">https://ml.seasar.org/mailman/listinfo/mayaa-user</a><br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; _______________________________________________<br class="gmail_msg">
&gt; mayaa-user mailing list<br class="gmail_msg">
&gt; <a href="mailto:mayaa-user@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user@ml.seasar.org</a><br class="gmail_msg">
&gt; <a href="https://ml.seasar.org/mailman/listinfo/mayaa-user" class="gmail_msg" target="_blank">https://ml.seasar.org/mailman/listinfo/mayaa-user</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
-- <br class="gmail_msg">
株式会社インターファクトリー   水野 謙<br class="gmail_msg">
<a href="mailto:mizuno.ken@interfactory.co.jp" class="gmail_msg" target="_blank">mizuno.ken@interfactory.co.jp</a><br class="gmail_msg">
<br class="gmail_msg">
〒102-0071<br class="gmail_msg">
東京都千代田区富士見2-10-2 飯田橋グラン・ブルーム4階<br class="gmail_msg">
TEL:03-5211-0056 / FAX:03-5211-0059<br class="gmail_msg">
<a href="http://www.interfactory.co.jp" class="gmail_msg" target="_blank">http://www.interfactory.co.jp</a><br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
mayaa-user mailing list<br class="gmail_msg">
<a href="mailto:mayaa-user@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user@ml.seasar.org</a><br class="gmail_msg">
<a href="https://ml.seasar.org/mailman/listinfo/mayaa-user" class="gmail_msg" target="_blank">https://ml.seasar.org/mailman/listinfo/mayaa-user</a><br class="gmail_msg">
</div></span></font></div></div></div>

_______________________________________________<br class="gmail_msg">
mayaa-user mailing list<br class="gmail_msg">
<a href="mailto:mayaa-user@ml.seasar.org" class="gmail_msg" target="_blank">mayaa-user@ml.seasar.org</a><br class="gmail_msg">
<a href="https://ml.seasar.org/mailman/listinfo/mayaa-user" rel="noreferrer" class="gmail_msg" target="_blank">https://ml.seasar.org/mailman/listinfo/mayaa-user</a></blockquote></div></div>