If you intercept yourself trunk of openwebbeans should handle it now 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 Romain Manni-Bucau <[email protected]>: > PS: do you intercept yourself? > 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 Romain Manni-Bucau <[email protected]>: >> 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 >>>>> > > > >>>>> > > > >>>>> > > > >>>>> > > >>>>> >
