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
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > >
>>>> >

Reply via email to