[mayaa-user:988] Re: pageSerializeを有効にすると、時々裏で例外が発生します

suga [E-MAIL ADDRESS DELETED]
2013年 9月 1日 (日) 20:19:06 JST


suga です。

同じファイルに対して出続けるということでなければ、ユーザへの実害は無いと思います。

現象としてはおそらく同じSpecificationImplに対するビルドが瞬間的に複数回実行されて、
古いものをdeleteする処理とSerializeThreadでのserializeが同時に、というところだと思います。

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


2013/8/31 Susumu ISHIGAMI <susumu.ishigami @ gmail.com>:
> 石上です。
> いつもお世話になっております。
>
> 既知の問題であったら申し訳ありません。
> pageSerialize機能を有効にした状態で、
> ページ遷移を繰り返していると下記のExceptionが時々ログ上に現れます。
>
> 自分のアプリケーションが起因しているかもしれませんが、
> スタックトレースには、Java標準とMayaaのクラスしか現れません。
>
> おそらく、ページにシリアライズ処理が競合し
> 実際はシリアライズが一回行われない程度で、
> ユーザーには影響がほぼないのではないかと思います。
> しかし、念のため、問題ないか確認したいことと、
> 問題ないのであったら、ログファイルにスタックトレースを出力せず、
> 綺麗にしたいと思っています。
>
> JDK 1.7.0、Tomcat7.0で発生しています。
>
> よろしくお願い致します。
>
> Exception in thread "serializeThread-0"
> java.util.ConcurrentModificationException
> at java.util.ArrayList.writeObject(ArrayList.java:713)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.processor.TemplateProcessorSupport.writeObject(TemplateProcessorSupport.java:254)
> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at java.util.ArrayList.writeObject(ArrayList.java:710)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
> at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:438)
> at org.seasar.mayaa.impl.engine.TemplateImpl.writeObject(TemplateImpl.java:325)
> at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
> at org.seasar.mayaa.impl.engine.specification.SpecificationImpl.serialize(SpecificationImpl.java:302)
> at org.seasar.mayaa.impl.engine.specification.serialize.SerializeThread.run(SerializeThread.java:81)
>
> --
> Susumu ISHIGAMI
> susumu.ishigami @ gmail.com
> _______________________________________________
> mayaa-user mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user


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