well it is normal it happens the second time since it was unserialized once then it needs to be reserialized but when it has missing info I think.
That said now you see which beans are creating it, do you think you can reproduce it? Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2013/10/31 <[email protected]>: > It looks like OWB is trying to serialize just regular CDI bean(which is not > an interceptor) as interceptor. Please note that it happens only when session > is replicated second time. That bean(UserSettings) is in interceptors map of > DefaultInterceptor handler with "null" key. > There is screenshot of how it looks like in debugger: > https://drive.google.com/file/d/0B1jOAi2N2uY8Wk5IdXZrb2J0ZTA/edit?usp=sharing > > > -----Ursprüngliche Nachricht----- > Von: Romain Manni-Bucau [mailto:[email protected]] > Gesendet: Donnerstag, 31. Oktober 2013 06:51 > An: [email protected] > Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT > > to give some details it happens when an interceptor is not serializable (see > last method of > https://svn.apache.org/repos/asf/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DefaultInterceptorHandler.java) > > it should be easy to debug this method to see just the level upper which bean > you deserialize and then identify the missing interceptor. > > can you try it? > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2013/10/30 Romain Manni-Bucau <[email protected]>: >> Hi >> >> In a war no idea, maybe active tomcat FINE logs >> >> Le 30 oct. 2013 19:14, <[email protected]> a écrit : >> >>> Hi! >>> >>> I have just tested replication in tomee-1.6.0-20131030.065404-219. >>> OWB Bug seems to be fixed, but there is new one. >>> The First replication works perfect, but after session migration to >>> another node I've got following exeception: >>> >>> java.io.NotSerializableException: null is not serializable >>> at >>> org.apache.webbeans.intercept.DefaultInterceptorHandler.serializeInterceptor(DefaultInterceptorHandler.java:266) >>> at >>> org.apache.webbeans.intercept.DefaultInterceptorHandler.writeExternal(DefaultInterceptorHandler.java:183) >>> at >>> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1443) >>> at >>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1414) >>> at >>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>> at >>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) >>> at >>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) >>> 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.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest.java:392) >>> at >>> org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest.java:285) >>> at >>> org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.java:299) >>> at >>> org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:143) >>> at >>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate(AbstractReplicatedMap.java:426) >>> at >>> org.apache.catalina.ha.session.BackupManager.requestCompleted(BackupManager.java:121) >>> at >>> org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java:539) >>> at >>> org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationValve.java:526) >>> at >>> org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMessage(ReplicationValve.java:508) >>> at >>> org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(ReplicationValve.java:421) >>> at >>> org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:345) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) >>> at >>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) >>> at >>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) >>> at >>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >>> at java.lang.Thread.run(Thread.java:722) >>> >>> After that session replication stops working at all. Unfortunately I >>> can't reproduce the issue with my sample application. Could you give >>> me a clue how to reproduce this in simple app? >>> >>> Regards, >>> Dmitry Volkov. >>> >>> -----Ursprüngliche Nachricht----- >>> Von: Romain Manni-Bucau [mailto:[email protected]] >>> Gesendet: Dienstag, 6. August 2013 12:18 >>> An: [email protected] >>> Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>> >>> Hi, >>> >>> that's an OWB issue (no link with clustering) >>> >>> i'll push it over OWB list. Thanks for the report. >>> >>> *Romain Manni-Bucau* >>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>> *Blog: >>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com >>> /> >>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>> *Github: https://github.com/rmannibucau* >>> >>> >>> >>> 2013/8/6 <[email protected]> >>> >>> > Hi >>> > >>> > There is the sample app: https://github.com/eiskonzept/tomee >>> > Package the application and start two tomee instances with tomee >>> > maven plugin (maven profiles "node1" and "node2"). Then open >>> > /index.xhtml from application root. >>> > >>> > The issue can be reproduced when replicated CDI bean is intercepted >>> > by CDI interceptor. >>> > >>> > >>> > >>> > -----Ursprüngliche Nachricht----- >>> > Von: Romain Manni-Bucau [mailto:[email protected]] >>> > Gesendet: Montag, 5. August 2013 10:10 >>> > An: [email protected] >>> > Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>> > >>> > Hi >>> > >>> > can you reproduce it in a sample? >>> > >>> > *Romain Manni-Bucau* >>> > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>> > *Blog: **http://rmannibucau.wordpress.com/*< >>> > http://rmannibucau.wordpress.com/> >>> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>> > *Github: https://github.com/rmannibucau* >>> > >>> > >>> > >>> > 2013/8/5 <[email protected]> >>> > >>> > > I have tested replication with last 1.6.0-SNAPSHOT and got >>> > > following >>> > > exception: >>> > > >>> > > java.io.NotSerializableException: >>> > > org.apache.webbeans.intercept.DefaultInterceptorHandler >>> > > at >>> > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >>> > > at >>> > > >>> > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>> > 1528) >>> > > at >>> > > >>> > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) >>> > > at >>> > > >>> > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.j >>> > ava >>> > :1416) >>> > > at >>> > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>> > > at >>> > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >>> > > at >>> > > >>> > org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeExte >>> > rna >>> > l(DeltaRequest.java:392) >>> > > at >>> > > >>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequ >>> > est >>> > .java:285) >>> > > at >>> > > >>> > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest. >>> > jav >>> > a:299) >>> > > at >>> > > >>> > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java: >>> > 143) >>> > > at >>> > > >>> > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate(Ab >>> > str >>> > actReplicatedMap.java:424) >>> > > at >>> > > >>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(Backu >>> > pMa >>> > nager.java:104) >>> > > at >>> > > >>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.j >>> > ava >>> > :539) >>> > > at >>> > > >>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replication >>> > Val >>> > ve.java:526) >>> > > at >>> > > >>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationM >>> > ess >>> > age(ReplicationValve.java:508) >>> > > at >>> > > >>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage( >>> > Rep >>> > licationValve.java:421) >>> > > at >>> > > >>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve >>> > .ja >>> > va:345) >>> > > at >>> > > >>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.j >>> > ava >>> > :408) >>> > > at >>> > > >>> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHt >>> > tp1 >>> > 1Processor.java:1023) >>> > > at >>> > > >>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.proces >>> > s(A >>> > bstractProtocol.java:589) >>> > > at >>> > > >>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpo >>> > int >>> > .java:312) >>> > > at >>> > > >>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecuto >>> > r.j >>> > ava:1110) >>> > > at >>> > > >>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. >>> > java:603) >>> > > at java.lang.Thread.run(Thread.java:722) >>> > > >>> > > -----Ursprüngliche Nachricht----- >>> > > Von: Romain Manni-Bucau [mailto:[email protected]] >>> > > Gesendet: Freitag, 2. August 2013 16:15 >>> > > An: [email protected] >>> > > Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>> > > >>> > > Hi, >>> > > >>> > > just commited sthg about it, not sure it is linked but i think so. >>> > > >>> > > *Romain Manni-Bucau* >>> > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>> > > *Blog: **http://rmannibucau.wordpress.com/*< >>> > > http://rmannibucau.wordpress.com/> >>> > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>> > > *Github: https://github.com/rmannibucau* >>> > > >>> > > >>> > > >>> > > 2013/8/2 <[email protected]> >>> > > >>> > > > Hi! >>> > > > >>> > > > I have just tested session replication in TomEE 1.6.0-SNAPSHOT >>> > > > and got following exception: >>> > > > >>> > > > java.io.NotSerializableException: >>> > > > org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1 >>> > > > at >>> > > > >>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>> > > 1528) >>> > > > at >>> > > > >>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>> > 149 >>> > 3) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>> > > .ja >>> > > va >>> > > :1416) >>> > > > at >>> > > > >>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>> > > 1528) >>> > > > at >>> > > > >>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>> > 149 >>> > 3) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>> > > .ja >>> > > va >>> > > :1416) >>> > > > at >>> > > > >>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>> > > 1528) >>> > > > at >>> > > > >>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>> > 149 >>> > 3) >>> > > > at >>> > > > >>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>> > > .ja >>> > > va >>> > > :1416) >>> > > > at >>> > > > >>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>> > > > at >>> > > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeEx >>> > > ter >>> > > na >>> > > l(DeltaRequest.java:392) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRe >>> > > que >>> > > st >>> > > .java:285) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaReques >>> > > t.j >>> > > av >>> > > a:299) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java: >>> > > 143) >>> > > > at >>> > > > >>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate( >>> > > Abs >>> > > tr >>> > > actReplicatedMap.java:424) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.session.BackupManager.requestCompleted(Bac >>> > > kup >>> > > Ma >>> > > nager.java:104) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve >>> > > .ja >>> > > va >>> > > :539) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replicati >>> > > onV >>> > > al >>> > > ve.java:526) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicatio >>> > > nMe >>> > > ss >>> > > age(ReplicationValve.java:508) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessag >>> > > e(R >>> > > ep >>> > > licationValve.java:421) >>> > > > at >>> > > > >>> > > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve. >>> > > ja >>> > > va:345) >>> > > > at >>> > > > >>> > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter >>> > > .ja >>> > > va >>> > > :408) >>> > > > at >>> > > > >>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstract >>> > > Htt >>> > > p1 >>> > > 1Processor.java:1023) >>> > > > at >>> > > > >>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.proc >>> > > ess >>> > > (A >>> > > bstractProtocol.java:589) >>> > > > at >>> > > > >>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEnd >>> > > poi >>> > > nt >>> > > .java:310) >>> > > > at >>> > > > >>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecu >>> > > tor >>> > > .j >>> > > ava:1110) >>> > > > at >>> > > > >>> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. >>> > > java:603) >>> > > > at java.lang.Thread.run(Thread.java:722) >>> > > > >>> > > > Tested application uses CDI, CODI and EJB 3.0 Stateless beans. >>> > > > >>> > > > Best regards, >>> > > > Dmitry Volkov >>> > > > >>> > > > >>> > > > >>> > > >>> >
