[mayaa-user:968] Re: 無限ループが発生しました

suga [E-MAIL ADDRESS DELETED]
2013年 3月 4日 (月) 21:29:32 JST


suga です。

2013/3/1 Susumu ISHIGAMI <susumu.ishigami @ gmail.com>
>1点目
>下記の箇所でHashMapの非同期の問題と思われる箇所がありました。
>Rhino内部によるものと思われ、

rhino の方は、最新版でも別の場所で修正があるようなので、別途手元で変更して
jarを作成するしかないかもしれません。
https://github.com/mozilla/rhino/pull/103


-- 
suga ( ko.suga @ gmail.com )


2013/3/1 Susumu ISHIGAMI <susumu.ishigami @ gmail.com>

> 石上です。
>
> いつもお世話になっております。
>
> 無限ループと思われる箇所が2箇所見つかりました。
> それぞれ別原因と思われ、また、一方は自分が既存クラスをExtendしている箇所ですので、
> オリジナルの状態では発生しないかもしれません。
>
> 報告すべきか迷いましたが、念のために報告します。
> (先ほど書きかけのメールを送ってしまったために報告せざるを得ない状況になってしまったのですが^^;)
>
> 1点目
> 下記の箇所でHashMapの非同期の問題と思われる箇所がありました。
> Rhino内部によるものと思われ、
>
>
> http://grepcode.com/file/repo1.maven.org/maven2/rhino/js/1.7R2/org/mozilla/javascript/JavaMembers.java
>
> ソースを読んでみると、HashMapが使われています。
> もし、呼び出し元の方で回避可能であったらご対応お願い致します。
>
> at java.util.HashMap.get(HashMap.java:346)
> at org.mozilla.javascript.JavaMembers.lookupClass(JavaMembers.java:833)
> at
> org.mozilla.javascript.NativeJavaObject.initMembers(NativeJavaObject.java:90)
> at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:80)
> at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:70)
> at
> org.mozilla.javascript.WrapFactory.wrapAsJavaObject(WrapFactory.java:149)
> at
> org.seasar.mayaa.impl.cycle.script.rhino.WrapFactoryImpl.wrapAsJavaObject(WrapFactoryImpl.java:53)
> at org.mozilla.javascript.WrapFactory.wrapNewObject(WrapFactory.java:124)
> at
> org.mozilla.javascript.NativeJavaClass.constructSpecific(NativeJavaClass.java:284)
> at
> org.mozilla.javascript.NativeJavaClass.construct(NativeJavaClass.java:200)
> at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:2327)
> at org.mozilla.javascript.gen.c2._c0(/mayaa/util.mjs:13)
> at org.mozilla.javascript.gen.c2.call(/mayaa/util.mjs)
> at org.mozilla.javascript.gen.c2.exec(/mayaa/util.mjs)
> at
> org.seasar.mayaa.impl.cycle.script.rhino.SourceCompiledScriptImpl.execute(SourceCompiledScriptImpl.java:97)
> at
> org.seasar.mayaa.impl.cycle.AbstractServiceCycle.load(AbstractServiceCycle.java:79)
> at
> org.seasar.mayaa.impl.cycle.AbstractServiceCycle.load(AbstractServiceCycle.java:59)
> at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
> at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
> at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
> at org.mozilla.javascript.gen.c1._c0(/view/default.mayaa#beforeRender:4)
> at org.mozilla.javascript.gen.c1.call(/view/default.mayaa#beforeRender)
> at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
> at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
> at org.mozilla.javascript.gen.c1.call(/view/default.mayaa#beforeRender)
> at org.mozilla.javascript.gen.c1.exec(/view/default.mayaa#beforeRender)
> at
> org.seasar.mayaa.impl.cycle.script.rhino.TextCompiledScriptImpl.normalExecute(TextCompiledScriptImpl.java:126)
> at
> org.seasar.mayaa.impl.cycle.script.rhino.TextCompiledScriptImpl.execute(TextCompiledScriptImpl.java:166)
>
>
> 2点目は、次の箇所でやはり無限ループと思われる現象が発生しました。
> whileの外に抜けないようです。
>
> at
> org.seasar.mayaa.impl.engine.specification.SpecificationUtil.findSpecification(SpecificationUtil.java:94)
> at
> org.seasar.mayaa.impl.engine.specification.SpecificationUtil.findSpecification(SpecificationUtil.java:113)
> at
> org.seasar.mayaa.impl.engine.EngineUtil.getSourcePath(EngineUtil.java:109)
>
>
> ただ、こちらは、呼び出し元が自分が独自にいじったクラスで、
> 具体的には、
> ScriptEnvironmentImplのcompileをOverrideし、
> 取得したcompiledScriptを独自のクラスでラップをして
> ラッパークラス側でexecuteを呼ぶ中で、getSourcePath
> を呼んでいます(爆)
>
> おそらく自分の使い方が間違っているのだと思います。
> ただ、この箇所で無限ループしてしまうようなことが考えられるのか分かりますでしょうか?
>
> 上記二つはスレッドダンプを解析していて見つけたものですので、常に再現出来るものではありません。
> 多分に偶発的なものか、自分の使い方が間違っていた可能性がありますが、
> もし何か分かればご参考にしてください。
>
>
>
> --
> Susumu ISHIGAMI
> susumu.ishigami @ gmail.com
> _______________________________________________
> mayaa-user mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/mayaa-user/attachments/20130304/73c75dfc/attachment.html>


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