You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by dm...@eiskonzept.com on 2013/10/30 19:13:48 UTC

AW: Session replication in TomEE 1.6.0-SNAPSHOT

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:rmannibucau@gmail.com] 
Gesendet: Dienstag, 6. August 2013 12:18
An: users@tomee.apache.org
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 <dm...@eiskonzept.com>

> 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:rmannibucau@gmail.com]
> Gesendet: Montag, 5. August 2013 10:10
> An: users@tomee.apache.org
> 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 <dm...@eiskonzept.com>
>
> > 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.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.writeExterna
> l(DeltaRequest.java:392)
> >         at
> >
> org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest
> .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(Abstr
> actReplicatedMap.java:424)
> >         at
> >
> org.apache.catalina.ha.session.BackupManager.requestCompleted(BackupMa
> nager.java:104)
> >         at
> >
> org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java
> :539)
> >         at
> >
> org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationVal
> ve.java:526)
> >         at
> >
> org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMess
> 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.java
> :408)
> >         at
> >
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp1
> 1Processor.java:1023)
> >         at
> >
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A
> bstractProtocol.java:589)
> >         at
> >
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint
> .java:312)
> >         at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.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:rmannibucau@gmail.com]
> > Gesendet: Freitag, 2. August 2013 16:15
> > An: users@tomee.apache.org
> > 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 <dm...@eiskonzept.com>
> >
> > > 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.writeExter
> > na
> > l(DeltaRequest.java:392)
> > >         at
> > >
> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaReque
> > st
> > .java:285)
> > >         at
> > >
> > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.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(Backup
> > Ma
> > nager.java:104)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.ja
> > va
> > :539)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationV
> > al
> > ve.java:526)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMe
> > ss
> > age(ReplicationValve.java:508)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(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(AbstractHtt
> > p1
> > 1Processor.java:1023)
> > >         at
> > >
> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
> > (A
> > bstractProtocol.java:589)
> > >         at
> > >
> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoi
> > nt
> > .java:310)
> > >         at
> > >
> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor
> > .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
> > >
> > >
> > >
> >
>

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Thanks for your test! I really appreciate 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  <dm...@eiskonzept.com>:
> It works!
> Updating OWB has solved the issue.
>
> Great work! Thank you.
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 16:14
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Hmm
>
> OWB snapshot shouldnt be up to date.
>
> If you buidl OWB + TomEE locally nothing to do to get it up to date locally otherwise it comes a bit tricky
>
> you can try to build OWB locally and add to tomee maven plugin:
>
> <libs>
>  <lib>remove:openwebbeans-impl</lib>
>  <lib>org.apache.openwebbeans:openwebbeans-impl:1.2.1-SNAPSHOT</lib>
> </libs>
>
> It will remove the version from the container and add the one from maven (here you need to get the most up to date one locally since the snapshot is not up to date) 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  <dm...@eiskonzept.com>:
>> I am testing on latest tomee 1.6.0-SNAPSHOT from repository. There is OWB 1.2.1-SNAPSHOT in it. Is it latest version from trunk? Can I test on it? When not, how can I replace OWB in tomee starting with tomee maven plugin?
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 15:58
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> seems to work here, not sure what I missed
>>
>> can you debug on openwebbeans trunk this method
>> org.apache.webbeans.intercept.DefaultInterceptorHandler#readIntercepto
>> r line 323 ((Interceptor<?>)
>> beanManager.getPassivationCapableBean(id))
>> put a conditional breakpoint when the returned value is null and give us the interceptor info (class etc...)?
>> 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  <dm...@eiskonzept.com>:
>>> Oh. Thank you for correcting me. :)
>>>
>>> I have commited corrections in Interceptor. Exception is still there:
>>>
>>> java.lang.NullPointerException
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>
>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51
>>> )
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 15:41
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> No no, it is really forbidden explicitely.
>>> 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  <dm...@eiskonzept.com>:
>>>> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 15:12
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> Did you notice your interceptor is scoped? -> @ApplicationScoped
>>>>
>>>> it is forbidden by the spec
>>>> 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  <dm...@eiskonzept.com>:
>>>>> After rebuild I've got another exception:
>>>>>
>>>>> java.lang.NullPointerException
>>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>>>
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.ja
>>>>> va:117)
>>>>>
>>>>> org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLife
>>>>> c
>>>>> ycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>>>
>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>>>
>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:
>>>>> 5
>>>>> 1
>>>>> )
>>>>>
>>>>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>>>>
>>>>> To reproduce:
>>>>> 1. Start the application in cluster. And open
>>>>> /tomee_replication-1.0/index.xhtml
>>>>> 2. Press submit button.
>>>>> 3. Stop active node.
>>>>> 4. Press submit button.
>>>>>
>>>>>
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>>>>> 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  <dm...@eiskonzept.com>:
>>>>>> Got it! A have reproduced the issue. See my test app:
>>>>>> https://github.com/eiskonzept/tomee
>>>>>>
>>>>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>>>>
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>>>>> An: users@tomee.apache.org
>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>
>>>>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>>>>> An: users@tomee.apache.org
>>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>>
>>>>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>>>>
>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>> No, there is no beans which are intercepting themselves.
>>>>>>>>
>>>>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>>>>
>>>>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>>>>
>>>>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>>>>
>>>>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>>>>> java.io.EOFException
>>>>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>>>>         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)
>>>>>>>>
>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>>>>> An: users@tomee.apache.org
>>>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>>>
>>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>>>>> 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?
>>>>>>>>>>> u
>>>>>>>>>>> s
>>>>>>>>>>> p=sharing
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>> 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-
>>>>>>>>>>> i
>>>>>>>>>>> m
>>>>>>>>>>> p
>>>>>>>>>>> l
>>>>>>>>>>> /
>>>>>>>>>>> s
>>>>>>>>>>> r
>>>>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>>>>> Hi
>>>>>>>>>>>>
>>>>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>>>>
>>>>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>>>>
>>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > > 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(ObjectOutp
>>>>>>>>>>>>> > u
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > S
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > r
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > m.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.
>>>>>>>>>>>>> > w
>>>>>>>>>>>>> > r
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > E
>>>>>>>>>>>>> > xte
>>>>>>>>>>>>> > rna
>>>>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal
>>>>>>>>>>>>> > (
>>>>>>>>>>>>> > D
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > R
>>>>>>>>>>>>> > equ
>>>>>>>>>>>>> > 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.re
>>>>>>>>>>>>> > p
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > c
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > (Ab
>>>>>>>>>>>>> > str
>>>>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompl
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > d
>>>>>>>>>>>>> > (
>>>>>>>>>>>>> > B
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > cku
>>>>>>>>>>>>> > pMa
>>>>>>>>>>>>> > nager.java:104)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicat
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > n
>>>>>>>>>>>>> > V
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > v
>>>>>>>>>>>>> > e.j
>>>>>>>>>>>>> > ava
>>>>>>>>>>>>> > :539)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(R
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > p
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > c
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > ion
>>>>>>>>>>>>> > Val
>>>>>>>>>>>>> > ve.java:526)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRe
>>>>>>>>>>>>> > p
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > c
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > onM
>>>>>>>>>>>>> > ess
>>>>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicati
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > n
>>>>>>>>>>>>> > M
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > s
>>>>>>>>>>>>> > s
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > ge(
>>>>>>>>>>>>> > Rep
>>>>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replic
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > i
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > n
>>>>>>>>>>>>> > V
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > lve
>>>>>>>>>>>>> > .ja
>>>>>>>>>>>>> > va:345)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > A
>>>>>>>>>>>>> > d
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > p
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > r.j
>>>>>>>>>>>>> > ava
>>>>>>>>>>>>> > :408)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(
>>>>>>>>>>>>> > A
>>>>>>>>>>>>> > b
>>>>>>>>>>>>> > s
>>>>>>>>>>>>> > t
>>>>>>>>>>>>> > r
>>>>>>>>>>>>> > a
>>>>>>>>>>>>> > c
>>>>>>>>>>>>> > tHt
>>>>>>>>>>>>> > tp1
>>>>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>>> > p
>>>>>>>>>>>>> > r
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > ces
>>>>>>>>>>>>> > s(A
>>>>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>>>>>>>>>>>>> > n
>>>>>>>>>>>>> > (
>>>>>>>>>>>>> > J
>>>>>>>>>>>>> > I
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > E
>>>>>>>>>>>>> > n
>>>>>>>>>>>>> > dpo
>>>>>>>>>>>>> > int
>>>>>>>>>>>>> > .java:312)
>>>>>>>>>>>>> > >         at
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > o
>>>>>>>>>>>>> > l
>>>>>>>>>>>>> > E
>>>>>>>>>>>>> > x
>>>>>>>>>>>>> > e
>>>>>>>>>>>>> > c
>>>>>>>>>>>>> > uto
>>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> > > > 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(ObjectOu
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > u
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > S
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > eam
>>>>>>>>>>>>> > > .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(ObjectOu
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > u
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > S
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > eam
>>>>>>>>>>>>> > > .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(ObjectOu
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > u
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > S
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > eam
>>>>>>>>>>>>> > > .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.
>>>>>>>>>>>>> > > w
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > eEx
>>>>>>>>>>>>> > > ter
>>>>>>>>>>>>> > > na
>>>>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExtern
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > (
>>>>>>>>>>>>> > > D
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > aRe
>>>>>>>>>>>>> > > que
>>>>>>>>>>>>> > > st
>>>>>>>>>>>>> > > .java:285)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(D
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > R
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > q
>>>>>>>>>>>>> > > ues
>>>>>>>>>>>>> > > t.j
>>>>>>>>>>>>> > > av
>>>>>>>>>>>>> > > a:299)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>>>>> > > 143)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > c
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > te(
>>>>>>>>>>>>> > > Abs
>>>>>>>>>>>>> > > tr
>>>>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestCom
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > d
>>>>>>>>>>>>> > > (
>>>>>>>>>>>>> > > Bac
>>>>>>>>>>>>> > > kup
>>>>>>>>>>>>> > > Ma
>>>>>>>>>>>>> > > nager.java:104)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replic
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > n
>>>>>>>>>>>>> > > V
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > lve
>>>>>>>>>>>>> > > .ja
>>>>>>>>>>>>> > > va
>>>>>>>>>>>>> > > :539)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage
>>>>>>>>>>>>> > > (
>>>>>>>>>>>>> > > R
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > c
>>>>>>>>>>>>> > > ati
>>>>>>>>>>>>> > > onV
>>>>>>>>>>>>> > > al
>>>>>>>>>>>>> > > ve.java:526)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSession
>>>>>>>>>>>>> > > R
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > c
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > tio
>>>>>>>>>>>>> > > nMe
>>>>>>>>>>>>> > > ss
>>>>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplica
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > i
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > n
>>>>>>>>>>>>> > > M
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > s
>>>>>>>>>>>>> > > sag
>>>>>>>>>>>>> > > 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(Coy
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > e
>>>>>>>>>>>>> > > A
>>>>>>>>>>>>> > > d
>>>>>>>>>>>>> > > a
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > ter
>>>>>>>>>>>>> > > .ja
>>>>>>>>>>>>> > > va
>>>>>>>>>>>>> > > :408)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.proces
>>>>>>>>>>>>> > > s
>>>>>>>>>>>>> > > (
>>>>>>>>>>>>> > > A
>>>>>>>>>>>>> > > b
>>>>>>>>>>>>> > > s
>>>>>>>>>>>>> > > t
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > act
>>>>>>>>>>>>> > > Htt
>>>>>>>>>>>>> > > p1
>>>>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>>> > > p
>>>>>>>>>>>>> > > roc
>>>>>>>>>>>>> > > ess
>>>>>>>>>>>>> > > (A
>>>>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.
>>>>>>>>>>>>> > > r
>>>>>>>>>>>>> > > u
>>>>>>>>>>>>> > > n
>>>>>>>>>>>>> > > (
>>>>>>>>>>>>> > > J
>>>>>>>>>>>>> > > I
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > End
>>>>>>>>>>>>> > > poi
>>>>>>>>>>>>> > > nt
>>>>>>>>>>>>> > > .java:310)
>>>>>>>>>>>>> > > >         at
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(Threa
>>>>>>>>>>>>> > > d
>>>>>>>>>>>>> > > P
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > o
>>>>>>>>>>>>> > > l
>>>>>>>>>>>>> > > E
>>>>>>>>>>>>> > > x
>>>>>>>>>>>>> > > ecu
>>>>>>>>>>>>> > > 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
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > > >
>>>>>>>>>>>>> > >
>>>>>>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
It works! 
Updating OWB has solved the issue. 

Great work! Thank you. 

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 16:14
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Hmm

OWB snapshot shouldnt be up to date.

If you buidl OWB + TomEE locally nothing to do to get it up to date locally otherwise it comes a bit tricky

you can try to build OWB locally and add to tomee maven plugin:

<libs>
 <lib>remove:openwebbeans-impl</lib>
 <lib>org.apache.openwebbeans:openwebbeans-impl:1.2.1-SNAPSHOT</lib>
</libs>

It will remove the version from the container and add the one from maven (here you need to get the most up to date one locally since the snapshot is not up to date) 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  <dm...@eiskonzept.com>:
> I am testing on latest tomee 1.6.0-SNAPSHOT from repository. There is OWB 1.2.1-SNAPSHOT in it. Is it latest version from trunk? Can I test on it? When not, how can I replace OWB in tomee starting with tomee maven plugin?
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:58
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> seems to work here, not sure what I missed
>
> can you debug on openwebbeans trunk this method 
> org.apache.webbeans.intercept.DefaultInterceptorHandler#readIntercepto
> r line 323 ((Interceptor<?>) 
> beanManager.getPassivationCapableBean(id))
> put a conditional breakpoint when the returned value is null and give us the interceptor info (class etc...)?
> 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  <dm...@eiskonzept.com>:
>> Oh. Thank you for correcting me. :)
>>
>> I have commited corrections in Interceptor. Exception is still there:
>>
>> java.lang.NullPointerException
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>         
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51
>> )
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 15:41
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> No no, it is really forbidden explicitely.
>> 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  <dm...@eiskonzept.com>:
>>> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 15:12
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Did you notice your interceptor is scoped? -> @ApplicationScoped
>>>
>>> it is forbidden by the spec
>>> 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  <dm...@eiskonzept.com>:
>>>> After rebuild I've got another exception:
>>>>
>>>> java.lang.NullPointerException
>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>>         
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.ja
>>>> va:117)
>>>>
>>>> org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLife
>>>> c
>>>> ycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>>
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>>
>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:
>>>> 5
>>>> 1
>>>> )
>>>>
>>>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>>>
>>>> To reproduce:
>>>> 1. Start the application in cluster. And open 
>>>> /tomee_replication-1.0/index.xhtml
>>>> 2. Press submit button.
>>>> 3. Stop active node.
>>>> 4. Press submit button.
>>>>
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>>>> 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  <dm...@eiskonzept.com>:
>>>>> Got it! A have reproduced the issue. See my test app:
>>>>> https://github.com/eiskonzept/tomee
>>>>>
>>>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>>>
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>>>> An: users@tomee.apache.org
>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>
>>>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>>>
>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>> No, there is no beans which are intercepting themselves.
>>>>>>>
>>>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>>>
>>>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>>>
>>>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>>>
>>>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>>>> java.io.EOFException
>>>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>>>         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)
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>>>> An: users@tomee.apache.org
>>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>>
>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>>>> 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?
>>>>>>>>>> u
>>>>>>>>>> s
>>>>>>>>>> p=sharing
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>> 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-
>>>>>>>>>> i
>>>>>>>>>> m
>>>>>>>>>> p
>>>>>>>>>> l
>>>>>>>>>> /
>>>>>>>>>> s
>>>>>>>>>> r
>>>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>>>
>>>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>>>
>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>> >
>>>>>>>>>>>> > > 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(ObjectOutp
>>>>>>>>>>>> > u
>>>>>>>>>>>> > t
>>>>>>>>>>>> > S
>>>>>>>>>>>> > t
>>>>>>>>>>>> > r
>>>>>>>>>>>> > e
>>>>>>>>>>>> > a
>>>>>>>>>>>> > m.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.
>>>>>>>>>>>> > w
>>>>>>>>>>>> > r
>>>>>>>>>>>> > i
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > E
>>>>>>>>>>>> > xte
>>>>>>>>>>>> > rna
>>>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal
>>>>>>>>>>>> > (
>>>>>>>>>>>> > D
>>>>>>>>>>>> > e
>>>>>>>>>>>> > l
>>>>>>>>>>>> > t
>>>>>>>>>>>> > a
>>>>>>>>>>>> > R
>>>>>>>>>>>> > equ
>>>>>>>>>>>> > 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.re
>>>>>>>>>>>> > p
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > (Ab
>>>>>>>>>>>> > str
>>>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompl
>>>>>>>>>>>> > e
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > d
>>>>>>>>>>>> > (
>>>>>>>>>>>> > B
>>>>>>>>>>>> > a
>>>>>>>>>>>> > cku
>>>>>>>>>>>> > pMa
>>>>>>>>>>>> > nager.java:104)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicat
>>>>>>>>>>>> > i
>>>>>>>>>>>> > o
>>>>>>>>>>>> > n
>>>>>>>>>>>> > V
>>>>>>>>>>>> > a
>>>>>>>>>>>> > l
>>>>>>>>>>>> > v
>>>>>>>>>>>> > e.j
>>>>>>>>>>>> > ava
>>>>>>>>>>>> > :539)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(R
>>>>>>>>>>>> > e
>>>>>>>>>>>> > p
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > ion
>>>>>>>>>>>> > Val
>>>>>>>>>>>> > ve.java:526)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRe
>>>>>>>>>>>> > p
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > i
>>>>>>>>>>>> > onM
>>>>>>>>>>>> > ess
>>>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicati
>>>>>>>>>>>> > o
>>>>>>>>>>>> > n
>>>>>>>>>>>> > M
>>>>>>>>>>>> > e
>>>>>>>>>>>> > s
>>>>>>>>>>>> > s
>>>>>>>>>>>> > a
>>>>>>>>>>>> > ge(
>>>>>>>>>>>> > Rep
>>>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replic
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > i
>>>>>>>>>>>> > o
>>>>>>>>>>>> > n
>>>>>>>>>>>> > V
>>>>>>>>>>>> > a
>>>>>>>>>>>> > lve
>>>>>>>>>>>> > .ja
>>>>>>>>>>>> > va:345)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>>>>>>>>>>>> > e
>>>>>>>>>>>> > A
>>>>>>>>>>>> > d
>>>>>>>>>>>> > a
>>>>>>>>>>>> > p
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > r.j
>>>>>>>>>>>> > ava
>>>>>>>>>>>> > :408)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(
>>>>>>>>>>>> > A
>>>>>>>>>>>> > b
>>>>>>>>>>>> > s
>>>>>>>>>>>> > t
>>>>>>>>>>>> > r
>>>>>>>>>>>> > a
>>>>>>>>>>>> > c
>>>>>>>>>>>> > tHt
>>>>>>>>>>>> > tp1
>>>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>> > p
>>>>>>>>>>>> > r
>>>>>>>>>>>> > o
>>>>>>>>>>>> > ces
>>>>>>>>>>>> > s(A
>>>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>>>>>>>>>>>> > n
>>>>>>>>>>>> > (
>>>>>>>>>>>> > J
>>>>>>>>>>>> > I
>>>>>>>>>>>> > o
>>>>>>>>>>>> > E
>>>>>>>>>>>> > n
>>>>>>>>>>>> > dpo
>>>>>>>>>>>> > int
>>>>>>>>>>>> > .java:312)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>>>>>>>>>>>> > o
>>>>>>>>>>>> > o
>>>>>>>>>>>> > l
>>>>>>>>>>>> > E
>>>>>>>>>>>> > x
>>>>>>>>>>>> > e
>>>>>>>>>>>> > c
>>>>>>>>>>>> > uto
>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>> > >
>>>>>>>>>>>> > > > 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(ObjectOu
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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(ObjectOu
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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(ObjectOu
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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.
>>>>>>>>>>>> > > w
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > eEx
>>>>>>>>>>>> > > ter
>>>>>>>>>>>> > > na
>>>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExtern
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > D
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > aRe
>>>>>>>>>>>> > > que
>>>>>>>>>>>> > > st
>>>>>>>>>>>> > > .java:285)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(D
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > R
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > q
>>>>>>>>>>>> > > ues
>>>>>>>>>>>> > > t.j
>>>>>>>>>>>> > > av
>>>>>>>>>>>> > > a:299)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>>>> > > 143)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > te(
>>>>>>>>>>>> > > Abs
>>>>>>>>>>>> > > tr
>>>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestCom
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > d
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > Bac
>>>>>>>>>>>> > > kup
>>>>>>>>>>>> > > Ma
>>>>>>>>>>>> > > nager.java:104)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replic
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > V
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > lve
>>>>>>>>>>>> > > .ja
>>>>>>>>>>>> > > va
>>>>>>>>>>>> > > :539)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > R
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > ati
>>>>>>>>>>>> > > onV
>>>>>>>>>>>> > > al
>>>>>>>>>>>> > > ve.java:526)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSession
>>>>>>>>>>>> > > R
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > tio
>>>>>>>>>>>> > > nMe
>>>>>>>>>>>> > > ss
>>>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplica
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > M
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > s
>>>>>>>>>>>> > > sag
>>>>>>>>>>>> > > 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(Coy
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > A
>>>>>>>>>>>> > > d
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > ter
>>>>>>>>>>>> > > .ja
>>>>>>>>>>>> > > va
>>>>>>>>>>>> > > :408)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.proces
>>>>>>>>>>>> > > s
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > A
>>>>>>>>>>>> > > b
>>>>>>>>>>>> > > s
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > act
>>>>>>>>>>>> > > Htt
>>>>>>>>>>>> > > p1
>>>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > roc
>>>>>>>>>>>> > > ess
>>>>>>>>>>>> > > (A
>>>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > J
>>>>>>>>>>>> > > I
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > End
>>>>>>>>>>>> > > poi
>>>>>>>>>>>> > > nt
>>>>>>>>>>>> > > .java:310)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(Threa
>>>>>>>>>>>> > > d
>>>>>>>>>>>> > > P
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > E
>>>>>>>>>>>> > > x
>>>>>>>>>>>> > > ecu
>>>>>>>>>>>> > > 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
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > >
>>>>>>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hmm

OWB snapshot shouldnt be up to date.

If you buidl OWB + TomEE locally nothing to do to get it up to date
locally otherwise it comes a bit tricky

you can try to build OWB locally and add to tomee maven plugin:

<libs>
 <lib>remove:openwebbeans-impl</lib>
 <lib>org.apache.openwebbeans:openwebbeans-impl:1.2.1-SNAPSHOT</lib>
</libs>

It will remove the version from the container and add the one from
maven (here you need to get the most up to date one locally since the
snapshot is not up to date)
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  <dm...@eiskonzept.com>:
> I am testing on latest tomee 1.6.0-SNAPSHOT from repository. There is OWB 1.2.1-SNAPSHOT in it. Is it latest version from trunk? Can I test on it? When not, how can I replace OWB in tomee starting with tomee maven plugin?
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:58
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> seems to work here, not sure what I missed
>
> can you debug on openwebbeans trunk this method org.apache.webbeans.intercept.DefaultInterceptorHandler#readInterceptor
> line 323 ((Interceptor<?>) beanManager.getPassivationCapableBean(id))
> put a conditional breakpoint when the returned value is null and give us the interceptor info (class etc...)?
> 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  <dm...@eiskonzept.com>:
>> Oh. Thank you for correcting me. :)
>>
>> I have commited corrections in Interceptor. Exception is still there:
>>
>> java.lang.NullPointerException
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 15:41
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> No no, it is really forbidden explicitely.
>> 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  <dm...@eiskonzept.com>:
>>> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 15:12
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Did you notice your interceptor is scoped? -> @ApplicationScoped
>>>
>>> it is forbidden by the spec
>>> 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  <dm...@eiskonzept.com>:
>>>> After rebuild I've got another exception:
>>>>
>>>> java.lang.NullPointerException
>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>>>
>>>> org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifec
>>>> ycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>>
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>>
>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:5
>>>> 1
>>>> )
>>>>
>>>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>>>
>>>> To reproduce:
>>>> 1. Start the application in cluster. And open
>>>> /tomee_replication-1.0/index.xhtml
>>>> 2. Press submit button.
>>>> 3. Stop active node.
>>>> 4. Press submit button.
>>>>
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>>>> 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  <dm...@eiskonzept.com>:
>>>>> Got it! A have reproduced the issue. See my test app:
>>>>> https://github.com/eiskonzept/tomee
>>>>>
>>>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>>>
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>>>> An: users@tomee.apache.org
>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>
>>>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>>>
>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>> No, there is no beans which are intercepting themselves.
>>>>>>>
>>>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>>>
>>>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>>>
>>>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>>>
>>>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>>>> java.io.EOFException
>>>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>>>         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)
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>>>> An: users@tomee.apache.org
>>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>>
>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>>>> 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?
>>>>>>>>>> u
>>>>>>>>>> s
>>>>>>>>>> p=sharing
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>> 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-i
>>>>>>>>>> m
>>>>>>>>>> p
>>>>>>>>>> l
>>>>>>>>>> /
>>>>>>>>>> s
>>>>>>>>>> r
>>>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>>>
>>>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>>>
>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>> >
>>>>>>>>>>>> > > 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(ObjectOutpu
>>>>>>>>>>>> > t
>>>>>>>>>>>> > S
>>>>>>>>>>>> > t
>>>>>>>>>>>> > r
>>>>>>>>>>>> > e
>>>>>>>>>>>> > a
>>>>>>>>>>>> > m.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.
>>>>>>>>>>>> > w
>>>>>>>>>>>> > r
>>>>>>>>>>>> > i
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > E
>>>>>>>>>>>> > xte
>>>>>>>>>>>> > rna
>>>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(
>>>>>>>>>>>> > D
>>>>>>>>>>>> > e
>>>>>>>>>>>> > l
>>>>>>>>>>>> > t
>>>>>>>>>>>> > a
>>>>>>>>>>>> > R
>>>>>>>>>>>> > equ
>>>>>>>>>>>> > 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.rep
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > (Ab
>>>>>>>>>>>> > str
>>>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComple
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > d
>>>>>>>>>>>> > (
>>>>>>>>>>>> > B
>>>>>>>>>>>> > a
>>>>>>>>>>>> > cku
>>>>>>>>>>>> > pMa
>>>>>>>>>>>> > nager.java:104)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicati
>>>>>>>>>>>> > o
>>>>>>>>>>>> > n
>>>>>>>>>>>> > V
>>>>>>>>>>>> > a
>>>>>>>>>>>> > l
>>>>>>>>>>>> > v
>>>>>>>>>>>> > e.j
>>>>>>>>>>>> > ava
>>>>>>>>>>>> > :539)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Re
>>>>>>>>>>>> > p
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > ion
>>>>>>>>>>>> > Val
>>>>>>>>>>>> > ve.java:526)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRep
>>>>>>>>>>>> > l
>>>>>>>>>>>> > i
>>>>>>>>>>>> > c
>>>>>>>>>>>> > a
>>>>>>>>>>>> > t
>>>>>>>>>>>> > i
>>>>>>>>>>>> > onM
>>>>>>>>>>>> > ess
>>>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicatio
>>>>>>>>>>>> > n
>>>>>>>>>>>> > M
>>>>>>>>>>>> > e
>>>>>>>>>>>> > s
>>>>>>>>>>>> > s
>>>>>>>>>>>> > a
>>>>>>>>>>>> > ge(
>>>>>>>>>>>> > Rep
>>>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replica
>>>>>>>>>>>> > t
>>>>>>>>>>>> > i
>>>>>>>>>>>> > o
>>>>>>>>>>>> > n
>>>>>>>>>>>> > V
>>>>>>>>>>>> > a
>>>>>>>>>>>> > lve
>>>>>>>>>>>> > .ja
>>>>>>>>>>>> > va:345)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(Coyote
>>>>>>>>>>>> > A
>>>>>>>>>>>> > d
>>>>>>>>>>>> > a
>>>>>>>>>>>> > p
>>>>>>>>>>>> > t
>>>>>>>>>>>> > e
>>>>>>>>>>>> > r.j
>>>>>>>>>>>> > ava
>>>>>>>>>>>> > :408)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(A
>>>>>>>>>>>> > b
>>>>>>>>>>>> > s
>>>>>>>>>>>> > t
>>>>>>>>>>>> > r
>>>>>>>>>>>> > a
>>>>>>>>>>>> > c
>>>>>>>>>>>> > tHt
>>>>>>>>>>>> > tp1
>>>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>> > p
>>>>>>>>>>>> > r
>>>>>>>>>>>> > o
>>>>>>>>>>>> > ces
>>>>>>>>>>>> > s(A
>>>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run
>>>>>>>>>>>> > (
>>>>>>>>>>>> > J
>>>>>>>>>>>> > I
>>>>>>>>>>>> > o
>>>>>>>>>>>> > E
>>>>>>>>>>>> > n
>>>>>>>>>>>> > dpo
>>>>>>>>>>>> > int
>>>>>>>>>>>> > .java:312)
>>>>>>>>>>>> > >         at
>>>>>>>>>>>> > >
>>>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo
>>>>>>>>>>>> > o
>>>>>>>>>>>> > l
>>>>>>>>>>>> > E
>>>>>>>>>>>> > x
>>>>>>>>>>>> > e
>>>>>>>>>>>> > c
>>>>>>>>>>>> > uto
>>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>>>> > >
>>>>>>>>>>>> > > > 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(ObjectOut
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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(ObjectOut
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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(ObjectOut
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > S
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > eam
>>>>>>>>>>>> > > .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.
>>>>>>>>>>>> > > w
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > eEx
>>>>>>>>>>>> > > ter
>>>>>>>>>>>> > > na
>>>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExterna
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > D
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > aRe
>>>>>>>>>>>> > > que
>>>>>>>>>>>> > > st
>>>>>>>>>>>> > > .java:285)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(De
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > R
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > q
>>>>>>>>>>>> > > ues
>>>>>>>>>>>> > > t.j
>>>>>>>>>>>> > > av
>>>>>>>>>>>> > > a:299)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>>>> > > 143)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.r
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > te(
>>>>>>>>>>>> > > Abs
>>>>>>>>>>>> > > tr
>>>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComp
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > d
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > Bac
>>>>>>>>>>>> > > kup
>>>>>>>>>>>> > > Ma
>>>>>>>>>>>> > > nager.java:104)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replica
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > V
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > lve
>>>>>>>>>>>> > > .ja
>>>>>>>>>>>> > > va
>>>>>>>>>>>> > > :539)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(
>>>>>>>>>>>> > > R
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > ati
>>>>>>>>>>>> > > onV
>>>>>>>>>>>> > > al
>>>>>>>>>>>> > > ve.java:526)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionR
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > c
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > tio
>>>>>>>>>>>> > > nMe
>>>>>>>>>>>> > > ss
>>>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicat
>>>>>>>>>>>> > > i
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > M
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > s
>>>>>>>>>>>> > > sag
>>>>>>>>>>>> > > 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(Coyo
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > e
>>>>>>>>>>>> > > A
>>>>>>>>>>>> > > d
>>>>>>>>>>>> > > a
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > ter
>>>>>>>>>>>> > > .ja
>>>>>>>>>>>> > > va
>>>>>>>>>>>> > > :408)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > A
>>>>>>>>>>>> > > b
>>>>>>>>>>>> > > s
>>>>>>>>>>>> > > t
>>>>>>>>>>>> > > r
>>>>>>>>>>>> > > act
>>>>>>>>>>>> > > Htt
>>>>>>>>>>>> > > p1
>>>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>>> > > p
>>>>>>>>>>>> > > roc
>>>>>>>>>>>> > > ess
>>>>>>>>>>>> > > (A
>>>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.r
>>>>>>>>>>>> > > u
>>>>>>>>>>>> > > n
>>>>>>>>>>>> > > (
>>>>>>>>>>>> > > J
>>>>>>>>>>>> > > I
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > End
>>>>>>>>>>>> > > poi
>>>>>>>>>>>> > > nt
>>>>>>>>>>>> > > .java:310)
>>>>>>>>>>>> > > >         at
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(Thread
>>>>>>>>>>>> > > P
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > o
>>>>>>>>>>>> > > l
>>>>>>>>>>>> > > E
>>>>>>>>>>>> > > x
>>>>>>>>>>>> > > ecu
>>>>>>>>>>>> > > 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
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > > >
>>>>>>>>>>>> > >
>>>>>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
I am testing on latest tomee 1.6.0-SNAPSHOT from repository. There is OWB 1.2.1-SNAPSHOT in it. Is it latest version from trunk? Can I test on it? When not, how can I replace OWB in tomee starting with tomee maven plugin? 

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 15:58
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

seems to work here, not sure what I missed

can you debug on openwebbeans trunk this method org.apache.webbeans.intercept.DefaultInterceptorHandler#readInterceptor
line 323 ((Interceptor<?>) beanManager.getPassivationCapableBean(id))
put a conditional breakpoint when the returned value is null and give us the interceptor info (class etc...)?
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  <dm...@eiskonzept.com>:
> Oh. Thank you for correcting me. :)
>
> I have commited corrections in Interceptor. Exception is still there:
>
> java.lang.NullPointerException
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>         
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:41
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> No no, it is really forbidden explicitely.
> 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  <dm...@eiskonzept.com>:
>> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 15:12
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Did you notice your interceptor is scoped? -> @ApplicationScoped
>>
>> it is forbidden by the spec
>> 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  <dm...@eiskonzept.com>:
>>> After rebuild I've got another exception:
>>>
>>> java.lang.NullPointerException
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>>         
>>> org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifec
>>> ycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>
>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:5
>>> 1
>>> )
>>>
>>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>>
>>> To reproduce:
>>> 1. Start the application in cluster. And open 
>>> /tomee_replication-1.0/index.xhtml
>>> 2. Press submit button.
>>> 3. Stop active node.
>>> 4. Press submit button.
>>>
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>>> 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  <dm...@eiskonzept.com>:
>>>> Got it! A have reproduced the issue. See my test app:
>>>> https://github.com/eiskonzept/tomee
>>>>
>>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>>
>>>>> 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  <dm...@eiskonzept.com>:
>>>>>> No, there is no beans which are intercepting themselves.
>>>>>>
>>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>>
>>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>>
>>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>>
>>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>>> java.io.EOFException
>>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>>         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)
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>>> An: users@tomee.apache.org
>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>
>>>>>> 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 <rm...@gmail.com>:
>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>>> 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?
>>>>>>>>> u
>>>>>>>>> s
>>>>>>>>> p=sharing
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>> 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-i
>>>>>>>>> m
>>>>>>>>> p
>>>>>>>>> l
>>>>>>>>> /
>>>>>>>>> s
>>>>>>>>> r
>>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>>
>>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>>
>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>>> >
>>>>>>>>>>> > > 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(ObjectOutpu
>>>>>>>>>>> > t
>>>>>>>>>>> > S
>>>>>>>>>>> > t
>>>>>>>>>>> > r
>>>>>>>>>>> > e
>>>>>>>>>>> > a
>>>>>>>>>>> > m.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.
>>>>>>>>>>> > w
>>>>>>>>>>> > r
>>>>>>>>>>> > i
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > E
>>>>>>>>>>> > xte
>>>>>>>>>>> > rna
>>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(
>>>>>>>>>>> > D
>>>>>>>>>>> > e
>>>>>>>>>>> > l
>>>>>>>>>>> > t
>>>>>>>>>>> > a
>>>>>>>>>>> > R
>>>>>>>>>>> > equ
>>>>>>>>>>> > 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.rep
>>>>>>>>>>> > l
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > (Ab
>>>>>>>>>>> > str
>>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComple
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > d
>>>>>>>>>>> > (
>>>>>>>>>>> > B
>>>>>>>>>>> > a
>>>>>>>>>>> > cku
>>>>>>>>>>> > pMa
>>>>>>>>>>> > nager.java:104)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicati
>>>>>>>>>>> > o
>>>>>>>>>>> > n
>>>>>>>>>>> > V
>>>>>>>>>>> > a
>>>>>>>>>>> > l
>>>>>>>>>>> > v
>>>>>>>>>>> > e.j
>>>>>>>>>>> > ava
>>>>>>>>>>> > :539)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Re
>>>>>>>>>>> > p
>>>>>>>>>>> > l
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > ion
>>>>>>>>>>> > Val
>>>>>>>>>>> > ve.java:526)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRep
>>>>>>>>>>> > l
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > i
>>>>>>>>>>> > onM
>>>>>>>>>>> > ess
>>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicatio
>>>>>>>>>>> > n
>>>>>>>>>>> > M
>>>>>>>>>>> > e
>>>>>>>>>>> > s
>>>>>>>>>>> > s
>>>>>>>>>>> > a
>>>>>>>>>>> > ge(
>>>>>>>>>>> > Rep
>>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replica
>>>>>>>>>>> > t
>>>>>>>>>>> > i
>>>>>>>>>>> > o
>>>>>>>>>>> > n
>>>>>>>>>>> > V
>>>>>>>>>>> > a
>>>>>>>>>>> > lve
>>>>>>>>>>> > .ja
>>>>>>>>>>> > va:345)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(Coyote
>>>>>>>>>>> > A
>>>>>>>>>>> > d
>>>>>>>>>>> > a
>>>>>>>>>>> > p
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > r.j
>>>>>>>>>>> > ava
>>>>>>>>>>> > :408)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(A
>>>>>>>>>>> > b
>>>>>>>>>>> > s
>>>>>>>>>>> > t
>>>>>>>>>>> > r
>>>>>>>>>>> > a
>>>>>>>>>>> > c
>>>>>>>>>>> > tHt
>>>>>>>>>>> > tp1
>>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>> > p
>>>>>>>>>>> > r
>>>>>>>>>>> > o
>>>>>>>>>>> > ces
>>>>>>>>>>> > s(A
>>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run
>>>>>>>>>>> > (
>>>>>>>>>>> > J
>>>>>>>>>>> > I
>>>>>>>>>>> > o
>>>>>>>>>>> > E
>>>>>>>>>>> > n
>>>>>>>>>>> > dpo
>>>>>>>>>>> > int
>>>>>>>>>>> > .java:312)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo
>>>>>>>>>>> > o
>>>>>>>>>>> > l
>>>>>>>>>>> > E
>>>>>>>>>>> > x
>>>>>>>>>>> > e
>>>>>>>>>>> > c
>>>>>>>>>>> > uto
>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>>> > >
>>>>>>>>>>> > > > 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(ObjectOut
>>>>>>>>>>> > > p
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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(ObjectOut
>>>>>>>>>>> > > p
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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(ObjectOut
>>>>>>>>>>> > > p
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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.
>>>>>>>>>>> > > w
>>>>>>>>>>> > > r
>>>>>>>>>>> > > i
>>>>>>>>>>> > > t
>>>>>>>>>>> > > eEx
>>>>>>>>>>> > > ter
>>>>>>>>>>> > > na
>>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExterna
>>>>>>>>>>> > > l
>>>>>>>>>>> > > (
>>>>>>>>>>> > > D
>>>>>>>>>>> > > e
>>>>>>>>>>> > > l
>>>>>>>>>>> > > t
>>>>>>>>>>> > > aRe
>>>>>>>>>>> > > que
>>>>>>>>>>> > > st
>>>>>>>>>>> > > .java:285)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(De
>>>>>>>>>>> > > l
>>>>>>>>>>> > > t
>>>>>>>>>>> > > a
>>>>>>>>>>> > > R
>>>>>>>>>>> > > e
>>>>>>>>>>> > > q
>>>>>>>>>>> > > ues
>>>>>>>>>>> > > t.j
>>>>>>>>>>> > > av
>>>>>>>>>>> > > a:299)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>>> > > 143)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.r
>>>>>>>>>>> > > e
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > a
>>>>>>>>>>> > > te(
>>>>>>>>>>> > > Abs
>>>>>>>>>>> > > tr
>>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComp
>>>>>>>>>>> > > l
>>>>>>>>>>> > > e
>>>>>>>>>>> > > t
>>>>>>>>>>> > > e
>>>>>>>>>>> > > d
>>>>>>>>>>> > > (
>>>>>>>>>>> > > Bac
>>>>>>>>>>> > > kup
>>>>>>>>>>> > > Ma
>>>>>>>>>>> > > nager.java:104)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replica
>>>>>>>>>>> > > t
>>>>>>>>>>> > > i
>>>>>>>>>>> > > o
>>>>>>>>>>> > > n
>>>>>>>>>>> > > V
>>>>>>>>>>> > > a
>>>>>>>>>>> > > lve
>>>>>>>>>>> > > .ja
>>>>>>>>>>> > > va
>>>>>>>>>>> > > :539)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(
>>>>>>>>>>> > > R
>>>>>>>>>>> > > e
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > ati
>>>>>>>>>>> > > onV
>>>>>>>>>>> > > al
>>>>>>>>>>> > > ve.java:526)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionR
>>>>>>>>>>> > > e
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > a
>>>>>>>>>>> > > tio
>>>>>>>>>>> > > nMe
>>>>>>>>>>> > > ss
>>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicat
>>>>>>>>>>> > > i
>>>>>>>>>>> > > o
>>>>>>>>>>> > > n
>>>>>>>>>>> > > M
>>>>>>>>>>> > > e
>>>>>>>>>>> > > s
>>>>>>>>>>> > > sag
>>>>>>>>>>> > > 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(Coyo
>>>>>>>>>>> > > t
>>>>>>>>>>> > > e
>>>>>>>>>>> > > A
>>>>>>>>>>> > > d
>>>>>>>>>>> > > a
>>>>>>>>>>> > > p
>>>>>>>>>>> > > ter
>>>>>>>>>>> > > .ja
>>>>>>>>>>> > > va
>>>>>>>>>>> > > :408)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process
>>>>>>>>>>> > > (
>>>>>>>>>>> > > A
>>>>>>>>>>> > > b
>>>>>>>>>>> > > s
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > act
>>>>>>>>>>> > > Htt
>>>>>>>>>>> > > p1
>>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>> > > p
>>>>>>>>>>> > > roc
>>>>>>>>>>> > > ess
>>>>>>>>>>> > > (A
>>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.r
>>>>>>>>>>> > > u
>>>>>>>>>>> > > n
>>>>>>>>>>> > > (
>>>>>>>>>>> > > J
>>>>>>>>>>> > > I
>>>>>>>>>>> > > o
>>>>>>>>>>> > > End
>>>>>>>>>>> > > poi
>>>>>>>>>>> > > nt
>>>>>>>>>>> > > .java:310)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(Thread
>>>>>>>>>>> > > P
>>>>>>>>>>> > > o
>>>>>>>>>>> > > o
>>>>>>>>>>> > > l
>>>>>>>>>>> > > E
>>>>>>>>>>> > > x
>>>>>>>>>>> > > ecu
>>>>>>>>>>> > > 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
>>>>>>>>>>> > > >
>>>>>>>>>>> > > >
>>>>>>>>>>> > > >
>>>>>>>>>>> > >
>>>>>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
seems to work here, not sure what I missed

can you debug on openwebbeans trunk this method
org.apache.webbeans.intercept.DefaultInterceptorHandler#readInterceptor
line 323 ((Interceptor<?>) beanManager.getPassivationCapableBean(id))
put a conditional breakpoint when the returned value is null and give
us the interceptor info (class etc...)?
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  <dm...@eiskonzept.com>:
> Oh. Thank you for correcting me. :)
>
> I have commited corrections in Interceptor. Exception is still there:
>
> java.lang.NullPointerException
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>         org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:41
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> No no, it is really forbidden explicitely.
> 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  <dm...@eiskonzept.com>:
>> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 15:12
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Did you notice your interceptor is scoped? -> @ApplicationScoped
>>
>> it is forbidden by the spec
>> 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  <dm...@eiskonzept.com>:
>>> After rebuild I've got another exception:
>>>
>>> java.lang.NullPointerException
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         java.lang.reflect.Method.invoke(Method.java:601)
>>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>>
>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>>
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51
>>> )
>>>
>>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>>
>>> To reproduce:
>>> 1. Start the application in cluster. And open
>>> /tomee_replication-1.0/index.xhtml
>>> 2. Press submit button.
>>> 3. Stop active node.
>>> 4. Press submit button.
>>>
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>>> 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  <dm...@eiskonzept.com>:
>>>> Got it! A have reproduced the issue. See my test app:
>>>> https://github.com/eiskonzept/tomee
>>>>
>>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>>
>>>>> 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  <dm...@eiskonzept.com>:
>>>>>> No, there is no beans which are intercepting themselves.
>>>>>>
>>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>>
>>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>>
>>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>>
>>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>>> java.io.EOFException
>>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>>         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)
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>>> An: users@tomee.apache.org
>>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>>
>>>>>> 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 <rm...@gmail.com>:
>>>>>>> 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 <rm...@gmail.com>:
>>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>>> 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?
>>>>>>>>> u
>>>>>>>>> s
>>>>>>>>> p=sharing
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>> 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-im
>>>>>>>>> p
>>>>>>>>> l
>>>>>>>>> /
>>>>>>>>> s
>>>>>>>>> r
>>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>>
>>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>>
>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>>> >
>>>>>>>>>>> > > 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(ObjectOutput
>>>>>>>>>>> > S
>>>>>>>>>>> > t
>>>>>>>>>>> > r
>>>>>>>>>>> > e
>>>>>>>>>>> > a
>>>>>>>>>>> > m.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.w
>>>>>>>>>>> > r
>>>>>>>>>>> > i
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > E
>>>>>>>>>>> > xte
>>>>>>>>>>> > rna
>>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(D
>>>>>>>>>>> > e
>>>>>>>>>>> > l
>>>>>>>>>>> > t
>>>>>>>>>>> > a
>>>>>>>>>>> > R
>>>>>>>>>>> > equ
>>>>>>>>>>> > 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.repl
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > (Ab
>>>>>>>>>>> > str
>>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComplet
>>>>>>>>>>> > e
>>>>>>>>>>> > d
>>>>>>>>>>> > (
>>>>>>>>>>> > B
>>>>>>>>>>> > a
>>>>>>>>>>> > cku
>>>>>>>>>>> > pMa
>>>>>>>>>>> > nager.java:104)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicatio
>>>>>>>>>>> > n
>>>>>>>>>>> > V
>>>>>>>>>>> > a
>>>>>>>>>>> > l
>>>>>>>>>>> > v
>>>>>>>>>>> > e.j
>>>>>>>>>>> > ava
>>>>>>>>>>> > :539)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Rep
>>>>>>>>>>> > l
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > ion
>>>>>>>>>>> > Val
>>>>>>>>>>> > ve.java:526)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepl
>>>>>>>>>>> > i
>>>>>>>>>>> > c
>>>>>>>>>>> > a
>>>>>>>>>>> > t
>>>>>>>>>>> > i
>>>>>>>>>>> > onM
>>>>>>>>>>> > ess
>>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplication
>>>>>>>>>>> > M
>>>>>>>>>>> > e
>>>>>>>>>>> > s
>>>>>>>>>>> > s
>>>>>>>>>>> > a
>>>>>>>>>>> > ge(
>>>>>>>>>>> > Rep
>>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicat
>>>>>>>>>>> > i
>>>>>>>>>>> > o
>>>>>>>>>>> > n
>>>>>>>>>>> > V
>>>>>>>>>>> > a
>>>>>>>>>>> > lve
>>>>>>>>>>> > .ja
>>>>>>>>>>> > va:345)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteA
>>>>>>>>>>> > d
>>>>>>>>>>> > a
>>>>>>>>>>> > p
>>>>>>>>>>> > t
>>>>>>>>>>> > e
>>>>>>>>>>> > r.j
>>>>>>>>>>> > ava
>>>>>>>>>>> > :408)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Ab
>>>>>>>>>>> > s
>>>>>>>>>>> > t
>>>>>>>>>>> > r
>>>>>>>>>>> > a
>>>>>>>>>>> > c
>>>>>>>>>>> > tHt
>>>>>>>>>>> > tp1
>>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>> > p
>>>>>>>>>>> > r
>>>>>>>>>>> > o
>>>>>>>>>>> > ces
>>>>>>>>>>> > s(A
>>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>>>>>>>>>>> > J
>>>>>>>>>>> > I
>>>>>>>>>>> > o
>>>>>>>>>>> > E
>>>>>>>>>>> > n
>>>>>>>>>>> > dpo
>>>>>>>>>>> > int
>>>>>>>>>>> > .java:312)
>>>>>>>>>>> > >         at
>>>>>>>>>>> > >
>>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoo
>>>>>>>>>>> > l
>>>>>>>>>>> > E
>>>>>>>>>>> > x
>>>>>>>>>>> > e
>>>>>>>>>>> > c
>>>>>>>>>>> > uto
>>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>>> > >
>>>>>>>>>>> > > > 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(ObjectOutp
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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(ObjectOutp
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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(ObjectOutp
>>>>>>>>>>> > > u
>>>>>>>>>>> > > t
>>>>>>>>>>> > > S
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > eam
>>>>>>>>>>> > > .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.
>>>>>>>>>>> > > w
>>>>>>>>>>> > > r
>>>>>>>>>>> > > i
>>>>>>>>>>> > > t
>>>>>>>>>>> > > eEx
>>>>>>>>>>> > > ter
>>>>>>>>>>> > > na
>>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal
>>>>>>>>>>> > > (
>>>>>>>>>>> > > D
>>>>>>>>>>> > > e
>>>>>>>>>>> > > l
>>>>>>>>>>> > > t
>>>>>>>>>>> > > aRe
>>>>>>>>>>> > > que
>>>>>>>>>>> > > st
>>>>>>>>>>> > > .java:285)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Del
>>>>>>>>>>> > > t
>>>>>>>>>>> > > a
>>>>>>>>>>> > > R
>>>>>>>>>>> > > e
>>>>>>>>>>> > > q
>>>>>>>>>>> > > ues
>>>>>>>>>>> > > t.j
>>>>>>>>>>> > > av
>>>>>>>>>>> > > a:299)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>>> > > 143)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.re
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > a
>>>>>>>>>>> > > te(
>>>>>>>>>>> > > Abs
>>>>>>>>>>> > > tr
>>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestCompl
>>>>>>>>>>> > > e
>>>>>>>>>>> > > t
>>>>>>>>>>> > > e
>>>>>>>>>>> > > d
>>>>>>>>>>> > > (
>>>>>>>>>>> > > Bac
>>>>>>>>>>> > > kup
>>>>>>>>>>> > > Ma
>>>>>>>>>>> > > nager.java:104)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicat
>>>>>>>>>>> > > i
>>>>>>>>>>> > > o
>>>>>>>>>>> > > n
>>>>>>>>>>> > > V
>>>>>>>>>>> > > a
>>>>>>>>>>> > > lve
>>>>>>>>>>> > > .ja
>>>>>>>>>>> > > va
>>>>>>>>>>> > > :539)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(R
>>>>>>>>>>> > > e
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > ati
>>>>>>>>>>> > > onV
>>>>>>>>>>> > > al
>>>>>>>>>>> > > ve.java:526)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRe
>>>>>>>>>>> > > p
>>>>>>>>>>> > > l
>>>>>>>>>>> > > i
>>>>>>>>>>> > > c
>>>>>>>>>>> > > a
>>>>>>>>>>> > > tio
>>>>>>>>>>> > > nMe
>>>>>>>>>>> > > ss
>>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicati
>>>>>>>>>>> > > o
>>>>>>>>>>> > > n
>>>>>>>>>>> > > M
>>>>>>>>>>> > > e
>>>>>>>>>>> > > s
>>>>>>>>>>> > > sag
>>>>>>>>>>> > > 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(Coyot
>>>>>>>>>>> > > e
>>>>>>>>>>> > > A
>>>>>>>>>>> > > d
>>>>>>>>>>> > > a
>>>>>>>>>>> > > p
>>>>>>>>>>> > > ter
>>>>>>>>>>> > > .ja
>>>>>>>>>>> > > va
>>>>>>>>>>> > > :408)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(
>>>>>>>>>>> > > A
>>>>>>>>>>> > > b
>>>>>>>>>>> > > s
>>>>>>>>>>> > > t
>>>>>>>>>>> > > r
>>>>>>>>>>> > > act
>>>>>>>>>>> > > Htt
>>>>>>>>>>> > > p1
>>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>>> > > p
>>>>>>>>>>> > > roc
>>>>>>>>>>> > > ess
>>>>>>>>>>> > > (A
>>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>>>>>>>>>>> > > n
>>>>>>>>>>> > > (
>>>>>>>>>>> > > J
>>>>>>>>>>> > > I
>>>>>>>>>>> > > o
>>>>>>>>>>> > > End
>>>>>>>>>>> > > poi
>>>>>>>>>>> > > nt
>>>>>>>>>>> > > .java:310)
>>>>>>>>>>> > > >         at
>>>>>>>>>>> > > >
>>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>>>>>>>>>>> > > o
>>>>>>>>>>> > > o
>>>>>>>>>>> > > l
>>>>>>>>>>> > > E
>>>>>>>>>>> > > x
>>>>>>>>>>> > > ecu
>>>>>>>>>>> > > 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
>>>>>>>>>>> > > >
>>>>>>>>>>> > > >
>>>>>>>>>>> > > >
>>>>>>>>>>> > >
>>>>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
Oh. Thank you for correcting me. :) 

I have commited corrections in Interceptor. Exception is still there: 

java.lang.NullPointerException
	org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
	de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:26)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:601)
	org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
	org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
	org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
	de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
	de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:601)
	org.apache.el.parser.AstValue.invoke(AstValue.java:278)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
	org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
	org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
	org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
	org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
	javax.faces.component.UICommand.broadcast(UICommand.java:120)
	javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
	javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
	org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 15:41
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

No no, it is really forbidden explicitely.
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  <dm...@eiskonzept.com>:
> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:12
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Did you notice your interceptor is scoped? -> @ApplicationScoped
>
> it is forbidden by the spec
> 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  <dm...@eiskonzept.com>:
>> After rebuild I've got another exception:
>>
>> java.lang.NullPointerException
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>         
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51
>> )
>>
>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>
>> To reproduce:
>> 1. Start the application in cluster. And open 
>> /tomee_replication-1.0/index.xhtml
>> 2. Press submit button.
>> 3. Stop active node.
>> 4. Press submit button.
>>
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>> 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  <dm...@eiskonzept.com>:
>>> Got it! A have reproduced the issue. See my test app:
>>> https://github.com/eiskonzept/tomee
>>>
>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>
>>>> 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  <dm...@eiskonzept.com>:
>>>>> No, there is no beans which are intercepting themselves.
>>>>>
>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>
>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>
>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>
>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>> java.io.EOFException
>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>         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)
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> 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 <rm...@gmail.com>:
>>>>>> 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 <rm...@gmail.com>:
>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>> 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?
>>>>>>>> u
>>>>>>>> s
>>>>>>>> p=sharing
>>>>>>>>
>>>>>>>>
>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>> An: users@tomee.apache.org
>>>>>>>> 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-im
>>>>>>>> p
>>>>>>>> l
>>>>>>>> /
>>>>>>>> s
>>>>>>>> r
>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>
>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>
>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>> >
>>>>>>>>>> > > 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(ObjectOutput
>>>>>>>>>> > S
>>>>>>>>>> > t
>>>>>>>>>> > r
>>>>>>>>>> > e
>>>>>>>>>> > a
>>>>>>>>>> > m.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.w
>>>>>>>>>> > r
>>>>>>>>>> > i
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > E
>>>>>>>>>> > xte
>>>>>>>>>> > rna
>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(D
>>>>>>>>>> > e
>>>>>>>>>> > l
>>>>>>>>>> > t
>>>>>>>>>> > a
>>>>>>>>>> > R
>>>>>>>>>> > equ
>>>>>>>>>> > 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.repl
>>>>>>>>>> > i
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > (Ab
>>>>>>>>>> > str
>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComplet
>>>>>>>>>> > e
>>>>>>>>>> > d
>>>>>>>>>> > (
>>>>>>>>>> > B
>>>>>>>>>> > a
>>>>>>>>>> > cku
>>>>>>>>>> > pMa
>>>>>>>>>> > nager.java:104)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicatio
>>>>>>>>>> > n
>>>>>>>>>> > V
>>>>>>>>>> > a
>>>>>>>>>> > l
>>>>>>>>>> > v
>>>>>>>>>> > e.j
>>>>>>>>>> > ava
>>>>>>>>>> > :539)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Rep
>>>>>>>>>> > l
>>>>>>>>>> > i
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > ion
>>>>>>>>>> > Val
>>>>>>>>>> > ve.java:526)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepl
>>>>>>>>>> > i
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > i
>>>>>>>>>> > onM
>>>>>>>>>> > ess
>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplication
>>>>>>>>>> > M
>>>>>>>>>> > e
>>>>>>>>>> > s
>>>>>>>>>> > s
>>>>>>>>>> > a
>>>>>>>>>> > ge(
>>>>>>>>>> > Rep
>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicat
>>>>>>>>>> > i
>>>>>>>>>> > o
>>>>>>>>>> > n
>>>>>>>>>> > V
>>>>>>>>>> > a
>>>>>>>>>> > lve
>>>>>>>>>> > .ja
>>>>>>>>>> > va:345)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteA
>>>>>>>>>> > d
>>>>>>>>>> > a
>>>>>>>>>> > p
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > r.j
>>>>>>>>>> > ava
>>>>>>>>>> > :408)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Ab
>>>>>>>>>> > s
>>>>>>>>>> > t
>>>>>>>>>> > r
>>>>>>>>>> > a
>>>>>>>>>> > c
>>>>>>>>>> > tHt
>>>>>>>>>> > tp1
>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>> > p
>>>>>>>>>> > r
>>>>>>>>>> > o
>>>>>>>>>> > ces
>>>>>>>>>> > s(A
>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>>>>>>>>>> > J
>>>>>>>>>> > I
>>>>>>>>>> > o
>>>>>>>>>> > E
>>>>>>>>>> > n
>>>>>>>>>> > dpo
>>>>>>>>>> > int
>>>>>>>>>> > .java:312)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoo
>>>>>>>>>> > l
>>>>>>>>>> > E
>>>>>>>>>> > x
>>>>>>>>>> > e
>>>>>>>>>> > c
>>>>>>>>>> > uto
>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>> > >
>>>>>>>>>> > > > 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(ObjectOutp
>>>>>>>>>> > > u
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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(ObjectOutp
>>>>>>>>>> > > u
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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(ObjectOutp
>>>>>>>>>> > > u
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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.
>>>>>>>>>> > > w
>>>>>>>>>> > > r
>>>>>>>>>> > > i
>>>>>>>>>> > > t
>>>>>>>>>> > > eEx
>>>>>>>>>> > > ter
>>>>>>>>>> > > na
>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal
>>>>>>>>>> > > (
>>>>>>>>>> > > D
>>>>>>>>>> > > e
>>>>>>>>>> > > l
>>>>>>>>>> > > t
>>>>>>>>>> > > aRe
>>>>>>>>>> > > que
>>>>>>>>>> > > st
>>>>>>>>>> > > .java:285)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Del
>>>>>>>>>> > > t
>>>>>>>>>> > > a
>>>>>>>>>> > > R
>>>>>>>>>> > > e
>>>>>>>>>> > > q
>>>>>>>>>> > > ues
>>>>>>>>>> > > t.j
>>>>>>>>>> > > av
>>>>>>>>>> > > a:299)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>> > > 143)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.re
>>>>>>>>>> > > p
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > a
>>>>>>>>>> > > te(
>>>>>>>>>> > > Abs
>>>>>>>>>> > > tr
>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestCompl
>>>>>>>>>> > > e
>>>>>>>>>> > > t
>>>>>>>>>> > > e
>>>>>>>>>> > > d
>>>>>>>>>> > > (
>>>>>>>>>> > > Bac
>>>>>>>>>> > > kup
>>>>>>>>>> > > Ma
>>>>>>>>>> > > nager.java:104)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicat
>>>>>>>>>> > > i
>>>>>>>>>> > > o
>>>>>>>>>> > > n
>>>>>>>>>> > > V
>>>>>>>>>> > > a
>>>>>>>>>> > > lve
>>>>>>>>>> > > .ja
>>>>>>>>>> > > va
>>>>>>>>>> > > :539)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(R
>>>>>>>>>> > > e
>>>>>>>>>> > > p
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > ati
>>>>>>>>>> > > onV
>>>>>>>>>> > > al
>>>>>>>>>> > > ve.java:526)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRe
>>>>>>>>>> > > p
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > a
>>>>>>>>>> > > tio
>>>>>>>>>> > > nMe
>>>>>>>>>> > > ss
>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicati
>>>>>>>>>> > > o
>>>>>>>>>> > > n
>>>>>>>>>> > > M
>>>>>>>>>> > > e
>>>>>>>>>> > > s
>>>>>>>>>> > > sag
>>>>>>>>>> > > 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(Coyot
>>>>>>>>>> > > e
>>>>>>>>>> > > A
>>>>>>>>>> > > d
>>>>>>>>>> > > a
>>>>>>>>>> > > p
>>>>>>>>>> > > ter
>>>>>>>>>> > > .ja
>>>>>>>>>> > > va
>>>>>>>>>> > > :408)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(
>>>>>>>>>> > > A
>>>>>>>>>> > > b
>>>>>>>>>> > > s
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > act
>>>>>>>>>> > > Htt
>>>>>>>>>> > > p1
>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>> > > p
>>>>>>>>>> > > roc
>>>>>>>>>> > > ess
>>>>>>>>>> > > (A
>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>>>>>>>>>> > > n
>>>>>>>>>> > > (
>>>>>>>>>> > > J
>>>>>>>>>> > > I
>>>>>>>>>> > > o
>>>>>>>>>> > > End
>>>>>>>>>> > > poi
>>>>>>>>>> > > nt
>>>>>>>>>> > > .java:310)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>>>>>>>>>> > > o
>>>>>>>>>> > > o
>>>>>>>>>> > > l
>>>>>>>>>> > > E
>>>>>>>>>> > > x
>>>>>>>>>> > > ecu
>>>>>>>>>> > > 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
>>>>>>>>>> > > >
>>>>>>>>>> > > >
>>>>>>>>>> > > >
>>>>>>>>>> > >
>>>>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
No no, it is really forbidden explicitely.
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  <dm...@eiskonzept.com>:
> As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue.
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 15:12
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Did you notice your interceptor is scoped? -> @ApplicationScoped
>
> it is forbidden by the spec
> 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  <dm...@eiskonzept.com>:
>> After rebuild I've got another exception:
>>
>> java.lang.NullPointerException
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         java.lang.reflect.Method.invoke(Method.java:601)
>>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>>
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>>
>> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>>
>> To reproduce:
>> 1. Start the application in cluster. And open
>> /tomee_replication-1.0/index.xhtml
>> 2. Press submit button.
>> 3. Stop active node.
>> 4. Press submit button.
>>
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 12:43
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
>> 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  <dm...@eiskonzept.com>:
>>> Got it! A have reproduced the issue. See my test app:
>>> https://github.com/eiskonzept/tomee
>>>
>>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>>
>>>> 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  <dm...@eiskonzept.com>:
>>>>> No, there is no beans which are intercepting themselves.
>>>>>
>>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>>
>>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>>
>>>>> There is an exception which is logged on the node to which session is replicated:
>>>>>
>>>>> SEVERE: Unable to deserialize MapMessage.
>>>>> java.io.EOFException
>>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>>         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)
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>>> An: users@tomee.apache.org
>>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>>
>>>>> 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 <rm...@gmail.com>:
>>>>>> 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 <rm...@gmail.com>:
>>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>>> 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?
>>>>>>>> u
>>>>>>>> s
>>>>>>>> p=sharing
>>>>>>>>
>>>>>>>>
>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>>> An: users@tomee.apache.org
>>>>>>>> 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-imp
>>>>>>>> l
>>>>>>>> /
>>>>>>>> s
>>>>>>>> r
>>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>>
>>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>>
>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>>> >
>>>>>>>>>> > > 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(ObjectOutputS
>>>>>>>>>> > t
>>>>>>>>>> > r
>>>>>>>>>> > e
>>>>>>>>>> > a
>>>>>>>>>> > m.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.wr
>>>>>>>>>> > i
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > E
>>>>>>>>>> > xte
>>>>>>>>>> > rna
>>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(De
>>>>>>>>>> > l
>>>>>>>>>> > t
>>>>>>>>>> > a
>>>>>>>>>> > R
>>>>>>>>>> > equ
>>>>>>>>>> > 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.repli
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > (Ab
>>>>>>>>>> > str
>>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComplete
>>>>>>>>>> > d
>>>>>>>>>> > (
>>>>>>>>>> > B
>>>>>>>>>> > a
>>>>>>>>>> > cku
>>>>>>>>>> > pMa
>>>>>>>>>> > nager.java:104)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replication
>>>>>>>>>> > V
>>>>>>>>>> > a
>>>>>>>>>> > l
>>>>>>>>>> > v
>>>>>>>>>> > e.j
>>>>>>>>>> > ava
>>>>>>>>>> > :539)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repl
>>>>>>>>>> > i
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > ion
>>>>>>>>>> > Val
>>>>>>>>>> > ve.java:526)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepli
>>>>>>>>>> > c
>>>>>>>>>> > a
>>>>>>>>>> > t
>>>>>>>>>> > i
>>>>>>>>>> > onM
>>>>>>>>>> > ess
>>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationM
>>>>>>>>>> > e
>>>>>>>>>> > s
>>>>>>>>>> > s
>>>>>>>>>> > a
>>>>>>>>>> > ge(
>>>>>>>>>> > Rep
>>>>>>>>>> > licationValve.java:421)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicati
>>>>>>>>>> > o
>>>>>>>>>> > n
>>>>>>>>>> > V
>>>>>>>>>> > a
>>>>>>>>>> > lve
>>>>>>>>>> > .ja
>>>>>>>>>> > va:345)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
>>>>>>>>>> > a
>>>>>>>>>> > p
>>>>>>>>>> > t
>>>>>>>>>> > e
>>>>>>>>>> > r.j
>>>>>>>>>> > ava
>>>>>>>>>> > :408)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>>>>>>>>>> > t
>>>>>>>>>> > r
>>>>>>>>>> > a
>>>>>>>>>> > c
>>>>>>>>>> > tHt
>>>>>>>>>> > tp1
>>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>> > p
>>>>>>>>>> > r
>>>>>>>>>> > o
>>>>>>>>>> > ces
>>>>>>>>>> > s(A
>>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(J
>>>>>>>>>> > I
>>>>>>>>>> > o
>>>>>>>>>> > E
>>>>>>>>>> > n
>>>>>>>>>> > dpo
>>>>>>>>>> > int
>>>>>>>>>> > .java:312)
>>>>>>>>>> > >         at
>>>>>>>>>> > >
>>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>>>>>>>> > E
>>>>>>>>>> > x
>>>>>>>>>> > e
>>>>>>>>>> > c
>>>>>>>>>> > uto
>>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>>> > >
>>>>>>>>>> > > > 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(ObjectOutpu
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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(ObjectOutpu
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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(ObjectOutpu
>>>>>>>>>> > > t
>>>>>>>>>> > > S
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > eam
>>>>>>>>>> > > .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.
>>>>>>>>>> > > w
>>>>>>>>>> > > r
>>>>>>>>>> > > i
>>>>>>>>>> > > t
>>>>>>>>>> > > eEx
>>>>>>>>>> > > ter
>>>>>>>>>> > > na
>>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(
>>>>>>>>>> > > D
>>>>>>>>>> > > e
>>>>>>>>>> > > l
>>>>>>>>>> > > t
>>>>>>>>>> > > aRe
>>>>>>>>>> > > que
>>>>>>>>>> > > st
>>>>>>>>>> > > .java:285)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Delt
>>>>>>>>>> > > a
>>>>>>>>>> > > R
>>>>>>>>>> > > e
>>>>>>>>>> > > q
>>>>>>>>>> > > ues
>>>>>>>>>> > > t.j
>>>>>>>>>> > > av
>>>>>>>>>> > > a:299)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>>> > > 143)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.rep
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > a
>>>>>>>>>> > > te(
>>>>>>>>>> > > Abs
>>>>>>>>>> > > tr
>>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComple
>>>>>>>>>> > > t
>>>>>>>>>> > > e
>>>>>>>>>> > > d
>>>>>>>>>> > > (
>>>>>>>>>> > > Bac
>>>>>>>>>> > > kup
>>>>>>>>>> > > Ma
>>>>>>>>>> > > nager.java:104)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicati
>>>>>>>>>> > > o
>>>>>>>>>> > > n
>>>>>>>>>> > > V
>>>>>>>>>> > > a
>>>>>>>>>> > > lve
>>>>>>>>>> > > .ja
>>>>>>>>>> > > va
>>>>>>>>>> > > :539)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Re
>>>>>>>>>> > > p
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > ati
>>>>>>>>>> > > onV
>>>>>>>>>> > > al
>>>>>>>>>> > > ve.java:526)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRep
>>>>>>>>>> > > l
>>>>>>>>>> > > i
>>>>>>>>>> > > c
>>>>>>>>>> > > a
>>>>>>>>>> > > tio
>>>>>>>>>> > > nMe
>>>>>>>>>> > > ss
>>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicatio
>>>>>>>>>> > > n
>>>>>>>>>> > > M
>>>>>>>>>> > > e
>>>>>>>>>> > > s
>>>>>>>>>> > > sag
>>>>>>>>>> > > 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(Coyote
>>>>>>>>>> > > A
>>>>>>>>>> > > d
>>>>>>>>>> > > a
>>>>>>>>>> > > p
>>>>>>>>>> > > ter
>>>>>>>>>> > > .ja
>>>>>>>>>> > > va
>>>>>>>>>> > > :408)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(A
>>>>>>>>>> > > b
>>>>>>>>>> > > s
>>>>>>>>>> > > t
>>>>>>>>>> > > r
>>>>>>>>>> > > act
>>>>>>>>>> > > Htt
>>>>>>>>>> > > p1
>>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>>> > > p
>>>>>>>>>> > > roc
>>>>>>>>>> > > ess
>>>>>>>>>> > > (A
>>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run
>>>>>>>>>> > > (
>>>>>>>>>> > > J
>>>>>>>>>> > > I
>>>>>>>>>> > > o
>>>>>>>>>> > > End
>>>>>>>>>> > > poi
>>>>>>>>>> > > nt
>>>>>>>>>> > > .java:310)
>>>>>>>>>> > > >         at
>>>>>>>>>> > > >
>>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo
>>>>>>>>>> > > o
>>>>>>>>>> > > l
>>>>>>>>>> > > E
>>>>>>>>>> > > x
>>>>>>>>>> > > ecu
>>>>>>>>>> > > 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
>>>>>>>>>> > > >
>>>>>>>>>> > > >
>>>>>>>>>> > > >
>>>>>>>>>> > >
>>>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
As far as I know it is allowed by spec. Anyway deleting @ApplicationScoped and @Default from interceptor does not solve the issue. 

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 15:12
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Did you notice your interceptor is scoped? -> @ApplicationScoped

it is forbidden by the spec
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  <dm...@eiskonzept.com>:
> After rebuild I've got another exception:
>
> java.lang.NullPointerException
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>         
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>
> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>
> To reproduce:
> 1. Start the application in cluster. And open 
> /tomee_replication-1.0/index.xhtml
> 2. Press submit button.
> 3. Stop active node.
> 4. Press submit button.
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 12:43
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
> 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  <dm...@eiskonzept.com>:
>> Got it! A have reproduced the issue. See my test app:
>> https://github.com/eiskonzept/tomee
>>
>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>
>>> 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  <dm...@eiskonzept.com>:
>>>> No, there is no beans which are intercepting themselves.
>>>>
>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>
>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>
>>>> There is an exception which is logged on the node to which session is replicated:
>>>>
>>>> SEVERE: Unable to deserialize MapMessage.
>>>> java.io.EOFException
>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>         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)
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> 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 <rm...@gmail.com>:
>>>>> 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 <rm...@gmail.com>:
>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>> 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?
>>>>>>> u
>>>>>>> s
>>>>>>> p=sharing
>>>>>>>
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>> An: users@tomee.apache.org
>>>>>>> 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-imp
>>>>>>> l
>>>>>>> /
>>>>>>> s
>>>>>>> r
>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>
>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>
>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>> >
>>>>>>>>> > > 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(ObjectOutputS
>>>>>>>>> > t
>>>>>>>>> > r
>>>>>>>>> > e
>>>>>>>>> > a
>>>>>>>>> > m.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.wr
>>>>>>>>> > i
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > E
>>>>>>>>> > xte
>>>>>>>>> > rna
>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(De
>>>>>>>>> > l
>>>>>>>>> > t
>>>>>>>>> > a
>>>>>>>>> > R
>>>>>>>>> > equ
>>>>>>>>> > 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.repli
>>>>>>>>> > c
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > (Ab
>>>>>>>>> > str
>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestComplete
>>>>>>>>> > d
>>>>>>>>> > (
>>>>>>>>> > B
>>>>>>>>> > a
>>>>>>>>> > cku
>>>>>>>>> > pMa
>>>>>>>>> > nager.java:104)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(Replication
>>>>>>>>> > V
>>>>>>>>> > a
>>>>>>>>> > l
>>>>>>>>> > v
>>>>>>>>> > e.j
>>>>>>>>> > ava
>>>>>>>>> > :539)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repl
>>>>>>>>> > i
>>>>>>>>> > c
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > ion
>>>>>>>>> > Val
>>>>>>>>> > ve.java:526)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepli
>>>>>>>>> > c
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > i
>>>>>>>>> > onM
>>>>>>>>> > ess
>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationM
>>>>>>>>> > e
>>>>>>>>> > s
>>>>>>>>> > s
>>>>>>>>> > a
>>>>>>>>> > ge(
>>>>>>>>> > Rep
>>>>>>>>> > licationValve.java:421)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicati
>>>>>>>>> > o
>>>>>>>>> > n
>>>>>>>>> > V
>>>>>>>>> > a
>>>>>>>>> > lve
>>>>>>>>> > .ja
>>>>>>>>> > va:345)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
>>>>>>>>> > a
>>>>>>>>> > p
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > r.j
>>>>>>>>> > ava
>>>>>>>>> > :408)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>>>>>>>>> > t
>>>>>>>>> > r
>>>>>>>>> > a
>>>>>>>>> > c
>>>>>>>>> > tHt
>>>>>>>>> > tp1
>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>> > p
>>>>>>>>> > r
>>>>>>>>> > o
>>>>>>>>> > ces
>>>>>>>>> > s(A
>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(J
>>>>>>>>> > I
>>>>>>>>> > o
>>>>>>>>> > E
>>>>>>>>> > n
>>>>>>>>> > dpo
>>>>>>>>> > int
>>>>>>>>> > .java:312)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>>>>>>> > E
>>>>>>>>> > x
>>>>>>>>> > e
>>>>>>>>> > c
>>>>>>>>> > uto
>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>> > >
>>>>>>>>> > > > 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(ObjectOutpu
>>>>>>>>> > > t
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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(ObjectOutpu
>>>>>>>>> > > t
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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(ObjectOutpu
>>>>>>>>> > > t
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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.
>>>>>>>>> > > w
>>>>>>>>> > > r
>>>>>>>>> > > i
>>>>>>>>> > > t
>>>>>>>>> > > eEx
>>>>>>>>> > > ter
>>>>>>>>> > > na
>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(
>>>>>>>>> > > D
>>>>>>>>> > > e
>>>>>>>>> > > l
>>>>>>>>> > > t
>>>>>>>>> > > aRe
>>>>>>>>> > > que
>>>>>>>>> > > st
>>>>>>>>> > > .java:285)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Delt
>>>>>>>>> > > a
>>>>>>>>> > > R
>>>>>>>>> > > e
>>>>>>>>> > > q
>>>>>>>>> > > ues
>>>>>>>>> > > t.j
>>>>>>>>> > > av
>>>>>>>>> > > a:299)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>> > > 143)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.rep
>>>>>>>>> > > l
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > a
>>>>>>>>> > > te(
>>>>>>>>> > > Abs
>>>>>>>>> > > tr
>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComple
>>>>>>>>> > > t
>>>>>>>>> > > e
>>>>>>>>> > > d
>>>>>>>>> > > (
>>>>>>>>> > > Bac
>>>>>>>>> > > kup
>>>>>>>>> > > Ma
>>>>>>>>> > > nager.java:104)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicati
>>>>>>>>> > > o
>>>>>>>>> > > n
>>>>>>>>> > > V
>>>>>>>>> > > a
>>>>>>>>> > > lve
>>>>>>>>> > > .ja
>>>>>>>>> > > va
>>>>>>>>> > > :539)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Re
>>>>>>>>> > > p
>>>>>>>>> > > l
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > ati
>>>>>>>>> > > onV
>>>>>>>>> > > al
>>>>>>>>> > > ve.java:526)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRep
>>>>>>>>> > > l
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > a
>>>>>>>>> > > tio
>>>>>>>>> > > nMe
>>>>>>>>> > > ss
>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicatio
>>>>>>>>> > > n
>>>>>>>>> > > M
>>>>>>>>> > > e
>>>>>>>>> > > s
>>>>>>>>> > > sag
>>>>>>>>> > > 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(Coyote
>>>>>>>>> > > A
>>>>>>>>> > > d
>>>>>>>>> > > a
>>>>>>>>> > > p
>>>>>>>>> > > ter
>>>>>>>>> > > .ja
>>>>>>>>> > > va
>>>>>>>>> > > :408)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(A
>>>>>>>>> > > b
>>>>>>>>> > > s
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > act
>>>>>>>>> > > Htt
>>>>>>>>> > > p1
>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>> > > p
>>>>>>>>> > > roc
>>>>>>>>> > > ess
>>>>>>>>> > > (A
>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run
>>>>>>>>> > > (
>>>>>>>>> > > J
>>>>>>>>> > > I
>>>>>>>>> > > o
>>>>>>>>> > > End
>>>>>>>>> > > poi
>>>>>>>>> > > nt
>>>>>>>>> > > .java:310)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo
>>>>>>>>> > > o
>>>>>>>>> > > l
>>>>>>>>> > > E
>>>>>>>>> > > x
>>>>>>>>> > > ecu
>>>>>>>>> > > 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
>>>>>>>>> > > >
>>>>>>>>> > > >
>>>>>>>>> > > >
>>>>>>>>> > >
>>>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Did you notice your interceptor is scoped? -> @ApplicationScoped

it is forbidden by the spec
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  <dm...@eiskonzept.com>:
> After rebuild I've got another exception:
>
> java.lang.NullPointerException
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
>         de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
>         org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
>         org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
>         de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
>         de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
>         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         java.lang.reflect.Method.invoke(Method.java:601)
>         org.apache.el.parser.AstValue.invoke(AstValue.java:278)
>         org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
>         org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
>         org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
>         org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
>         org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
>         javax.faces.component.UICommand.broadcast(UICommand.java:120)
>         javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
>         javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
>         javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
>         javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
>         org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
>         org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
>         org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
>         org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
>         org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>
> The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication.
>
> To reproduce:
> 1. Start the application in cluster. And open /tomee_replication-1.0/index.xhtml
> 2. Press submit button.
> 3. Stop active node.
> 4. Press submit button.
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 12:43
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
> 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  <dm...@eiskonzept.com>:
>> Got it! A have reproduced the issue. See my test app:
>> https://github.com/eiskonzept/tomee
>>
>> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 12:03
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>>
>>> 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  <dm...@eiskonzept.com>:
>>>> No, there is no beans which are intercepting themselves.
>>>>
>>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>>
>>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>>
>>>> There is an exception which is logged on the node to which session is replicated:
>>>>
>>>> SEVERE: Unable to deserialize MapMessage.
>>>> java.io.EOFException
>>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>>         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)
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>>> An: users@tomee.apache.org
>>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>>
>>>> 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 <rm...@gmail.com>:
>>>>> 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 <rm...@gmail.com>:
>>>>>> 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  <dm...@eiskonzept.com>:
>>>>>>> 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?
>>>>>>> u
>>>>>>> s
>>>>>>> p=sharing
>>>>>>>
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>>> An: users@tomee.apache.org
>>>>>>> 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
>>>>>>> /
>>>>>>> s
>>>>>>> r
>>>>>>> c/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 <rm...@gmail.com>:
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>>
>>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>>> An: users@tomee.apache.org
>>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>>
>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>>> > An: users@tomee.apache.org
>>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>>> >
>>>>>>>>> > > 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(ObjectOutputSt
>>>>>>>>> > r
>>>>>>>>> > e
>>>>>>>>> > a
>>>>>>>>> > m.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.wri
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > E
>>>>>>>>> > xte
>>>>>>>>> > rna
>>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Del
>>>>>>>>> > t
>>>>>>>>> > a
>>>>>>>>> > R
>>>>>>>>> > equ
>>>>>>>>> > 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.replic
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > (Ab
>>>>>>>>> > str
>>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted
>>>>>>>>> > (
>>>>>>>>> > B
>>>>>>>>> > a
>>>>>>>>> > cku
>>>>>>>>> > pMa
>>>>>>>>> > nager.java:104)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationV
>>>>>>>>> > a
>>>>>>>>> > l
>>>>>>>>> > v
>>>>>>>>> > e.j
>>>>>>>>> > ava
>>>>>>>>> > :539)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repli
>>>>>>>>> > c
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > ion
>>>>>>>>> > Val
>>>>>>>>> > ve.java:526)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplic
>>>>>>>>> > a
>>>>>>>>> > t
>>>>>>>>> > i
>>>>>>>>> > onM
>>>>>>>>> > ess
>>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMe
>>>>>>>>> > s
>>>>>>>>> > s
>>>>>>>>> > a
>>>>>>>>> > ge(
>>>>>>>>> > Rep
>>>>>>>>> > licationValve.java:421)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicatio
>>>>>>>>> > n
>>>>>>>>> > V
>>>>>>>>> > a
>>>>>>>>> > lve
>>>>>>>>> > .ja
>>>>>>>>> > va:345)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAda
>>>>>>>>> > p
>>>>>>>>> > t
>>>>>>>>> > e
>>>>>>>>> > r.j
>>>>>>>>> > ava
>>>>>>>>> > :408)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abst
>>>>>>>>> > r
>>>>>>>>> > a
>>>>>>>>> > c
>>>>>>>>> > tHt
>>>>>>>>> > tp1
>>>>>>>>> > 1Processor.java:1023)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>> > p
>>>>>>>>> > r
>>>>>>>>> > o
>>>>>>>>> > ces
>>>>>>>>> > s(A
>>>>>>>>> > bstractProtocol.java:589)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JI
>>>>>>>>> > o
>>>>>>>>> > E
>>>>>>>>> > n
>>>>>>>>> > dpo
>>>>>>>>> > int
>>>>>>>>> > .java:312)
>>>>>>>>> > >         at
>>>>>>>>> > >
>>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolE
>>>>>>>>> > x
>>>>>>>>> > e
>>>>>>>>> > c
>>>>>>>>> > uto
>>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>>> > >
>>>>>>>>> > > > 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(ObjectOutput
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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(ObjectOutput
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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(ObjectOutput
>>>>>>>>> > > S
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > eam
>>>>>>>>> > > .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.w
>>>>>>>>> > > r
>>>>>>>>> > > i
>>>>>>>>> > > t
>>>>>>>>> > > eEx
>>>>>>>>> > > ter
>>>>>>>>> > > na
>>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(D
>>>>>>>>> > > e
>>>>>>>>> > > l
>>>>>>>>> > > t
>>>>>>>>> > > aRe
>>>>>>>>> > > que
>>>>>>>>> > > st
>>>>>>>>> > > .java:285)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Delta
>>>>>>>>> > > R
>>>>>>>>> > > e
>>>>>>>>> > > q
>>>>>>>>> > > ues
>>>>>>>>> > > t.j
>>>>>>>>> > > av
>>>>>>>>> > > a:299)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>>> > > 143)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.repl
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > a
>>>>>>>>> > > te(
>>>>>>>>> > > Abs
>>>>>>>>> > > tr
>>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComplet
>>>>>>>>> > > e
>>>>>>>>> > > d
>>>>>>>>> > > (
>>>>>>>>> > > Bac
>>>>>>>>> > > kup
>>>>>>>>> > > Ma
>>>>>>>>> > > nager.java:104)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicatio
>>>>>>>>> > > n
>>>>>>>>> > > V
>>>>>>>>> > > a
>>>>>>>>> > > lve
>>>>>>>>> > > .ja
>>>>>>>>> > > va
>>>>>>>>> > > :539)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Rep
>>>>>>>>> > > l
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > ati
>>>>>>>>> > > onV
>>>>>>>>> > > al
>>>>>>>>> > > ve.java:526)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepl
>>>>>>>>> > > i
>>>>>>>>> > > c
>>>>>>>>> > > a
>>>>>>>>> > > tio
>>>>>>>>> > > nMe
>>>>>>>>> > > ss
>>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplication
>>>>>>>>> > > M
>>>>>>>>> > > e
>>>>>>>>> > > s
>>>>>>>>> > > sag
>>>>>>>>> > > 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(CoyoteA
>>>>>>>>> > > d
>>>>>>>>> > > a
>>>>>>>>> > > p
>>>>>>>>> > > ter
>>>>>>>>> > > .ja
>>>>>>>>> > > va
>>>>>>>>> > > :408)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Ab
>>>>>>>>> > > s
>>>>>>>>> > > t
>>>>>>>>> > > r
>>>>>>>>> > > act
>>>>>>>>> > > Htt
>>>>>>>>> > > p1
>>>>>>>>> > > 1Processor.java:1023)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>>> > > p
>>>>>>>>> > > roc
>>>>>>>>> > > ess
>>>>>>>>> > > (A
>>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>>>>>>>>> > > J
>>>>>>>>> > > I
>>>>>>>>> > > o
>>>>>>>>> > > End
>>>>>>>>> > > poi
>>>>>>>>> > > nt
>>>>>>>>> > > .java:310)
>>>>>>>>> > > >         at
>>>>>>>>> > > >
>>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoo
>>>>>>>>> > > l
>>>>>>>>> > > E
>>>>>>>>> > > x
>>>>>>>>> > > ecu
>>>>>>>>> > > 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
>>>>>>>>> > > >
>>>>>>>>> > > >
>>>>>>>>> > > >
>>>>>>>>> > >
>>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
After rebuild I've got another exception: 

java.lang.NullPointerException
	org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:55)
	de.test.cdi.TestInterceptor.intercept(TestInterceptor.java:28)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:601)
	org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:151)
	org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:62)
	org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:131)
	de.test.PassivationCapableBean$$OwbInterceptProxy0.submit(de/test/PassivationCapableBean.java)
	de.test.PassivationCapableBean$$OwbNormalScopeProxy0.submit(de/test/PassivationCapableBean.java)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:601)
	org.apache.el.parser.AstValue.invoke(AstValue.java:278)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
	org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:68)
	org.apache.myfaces.extensions.cdi.jsf.impl.security.SecurityViolationAwareActionListener.processAction(SecurityViolationAwareActionListener.java:56)
	org.apache.myfaces.extensions.cdi.jsf.impl.config.view.ViewControllerActionListener.processAction(ViewControllerActionListener.java:68)
	org.apache.myfaces.extensions.cdi.jsf.impl.listener.action.CodiActionListener.processAction(CodiActionListener.java:58)
	javax.faces.component.UICommand.broadcast(UICommand.java:120)
	javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1041)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)
	javax.faces.component.UIViewRoot._process(UIViewRoot.java:1415)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:765)
	org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:38)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

The property "beanUsedByInterceptor" and InvocationContext(!!!!) are nulls after session migration. Interceptor seems to be wrong initialized after replication. 

To reproduce: 
1. Start the application in cluster. And open /tomee_replication-1.0/index.xhtml
2. Press submit button. 
3. Stop active node. 
4. Press submit button.



-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 12:43
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did you fix it in your sample?
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  <dm...@eiskonzept.com>:
> Got it! A have reproduced the issue. See my test app: 
> https://github.com/eiskonzept/tomee
>
> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 12:03
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>
>> 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  <dm...@eiskonzept.com>:
>>> No, there is no beans which are intercepting themselves.
>>>
>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>
>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>
>>> There is an exception which is logged on the node to which session is replicated:
>>>
>>> SEVERE: Unable to deserialize MapMessage.
>>> java.io.EOFException
>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>         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)
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> 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 <rm...@gmail.com>:
>>>> 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 <rm...@gmail.com>:
>>>>> 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  <dm...@eiskonzept.com>:
>>>>>> 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?
>>>>>> u
>>>>>> s
>>>>>> p=sharing
>>>>>>
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>> An: users@tomee.apache.org
>>>>>> 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
>>>>>> /
>>>>>> s
>>>>>> r
>>>>>> c/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 <rm...@gmail.com>:
>>>>>>> Hi
>>>>>>>
>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>
>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>> An: users@tomee.apache.org
>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>
>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>> > An: users@tomee.apache.org
>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>> >
>>>>>>>> > > 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(ObjectOutputSt
>>>>>>>> > r
>>>>>>>> > e
>>>>>>>> > a
>>>>>>>> > m.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.wri
>>>>>>>> > t
>>>>>>>> > e
>>>>>>>> > E
>>>>>>>> > xte
>>>>>>>> > rna
>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Del
>>>>>>>> > t
>>>>>>>> > a
>>>>>>>> > R
>>>>>>>> > equ
>>>>>>>> > 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.replic
>>>>>>>> > a
>>>>>>>> > t
>>>>>>>> > e
>>>>>>>> > (Ab
>>>>>>>> > str
>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted
>>>>>>>> > (
>>>>>>>> > B
>>>>>>>> > a
>>>>>>>> > cku
>>>>>>>> > pMa
>>>>>>>> > nager.java:104)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationV
>>>>>>>> > a
>>>>>>>> > l
>>>>>>>> > v
>>>>>>>> > e.j
>>>>>>>> > ava
>>>>>>>> > :539)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repli
>>>>>>>> > c
>>>>>>>> > a
>>>>>>>> > t
>>>>>>>> > ion
>>>>>>>> > Val
>>>>>>>> > ve.java:526)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplic
>>>>>>>> > a
>>>>>>>> > t
>>>>>>>> > i
>>>>>>>> > onM
>>>>>>>> > ess
>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMe
>>>>>>>> > s
>>>>>>>> > s
>>>>>>>> > a
>>>>>>>> > ge(
>>>>>>>> > Rep
>>>>>>>> > licationValve.java:421)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replicatio
>>>>>>>> > n
>>>>>>>> > V
>>>>>>>> > a
>>>>>>>> > lve
>>>>>>>> > .ja
>>>>>>>> > va:345)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAda
>>>>>>>> > p
>>>>>>>> > t
>>>>>>>> > e
>>>>>>>> > r.j
>>>>>>>> > ava
>>>>>>>> > :408)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abst
>>>>>>>> > r
>>>>>>>> > a
>>>>>>>> > c
>>>>>>>> > tHt
>>>>>>>> > tp1
>>>>>>>> > 1Processor.java:1023)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>> > p
>>>>>>>> > r
>>>>>>>> > o
>>>>>>>> > ces
>>>>>>>> > s(A
>>>>>>>> > bstractProtocol.java:589)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JI
>>>>>>>> > o
>>>>>>>> > E
>>>>>>>> > n
>>>>>>>> > dpo
>>>>>>>> > int
>>>>>>>> > .java:312)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolE
>>>>>>>> > x
>>>>>>>> > e
>>>>>>>> > c
>>>>>>>> > uto
>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>> > >
>>>>>>>> > > > 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(ObjectOutput
>>>>>>>> > > S
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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(ObjectOutput
>>>>>>>> > > S
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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(ObjectOutput
>>>>>>>> > > S
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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.w
>>>>>>>> > > r
>>>>>>>> > > i
>>>>>>>> > > t
>>>>>>>> > > eEx
>>>>>>>> > > ter
>>>>>>>> > > na
>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(D
>>>>>>>> > > e
>>>>>>>> > > l
>>>>>>>> > > t
>>>>>>>> > > aRe
>>>>>>>> > > que
>>>>>>>> > > st
>>>>>>>> > > .java:285)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(Delta
>>>>>>>> > > R
>>>>>>>> > > e
>>>>>>>> > > q
>>>>>>>> > > ues
>>>>>>>> > > t.j
>>>>>>>> > > av
>>>>>>>> > > a:299)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>> > > 143)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.repl
>>>>>>>> > > i
>>>>>>>> > > c
>>>>>>>> > > a
>>>>>>>> > > te(
>>>>>>>> > > Abs
>>>>>>>> > > tr
>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComplet
>>>>>>>> > > e
>>>>>>>> > > d
>>>>>>>> > > (
>>>>>>>> > > Bac
>>>>>>>> > > kup
>>>>>>>> > > Ma
>>>>>>>> > > nager.java:104)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replicatio
>>>>>>>> > > n
>>>>>>>> > > V
>>>>>>>> > > a
>>>>>>>> > > lve
>>>>>>>> > > .ja
>>>>>>>> > > va
>>>>>>>> > > :539)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Rep
>>>>>>>> > > l
>>>>>>>> > > i
>>>>>>>> > > c
>>>>>>>> > > ati
>>>>>>>> > > onV
>>>>>>>> > > al
>>>>>>>> > > ve.java:526)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepl
>>>>>>>> > > i
>>>>>>>> > > c
>>>>>>>> > > a
>>>>>>>> > > tio
>>>>>>>> > > nMe
>>>>>>>> > > ss
>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplication
>>>>>>>> > > M
>>>>>>>> > > e
>>>>>>>> > > s
>>>>>>>> > > sag
>>>>>>>> > > 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(CoyoteA
>>>>>>>> > > d
>>>>>>>> > > a
>>>>>>>> > > p
>>>>>>>> > > ter
>>>>>>>> > > .ja
>>>>>>>> > > va
>>>>>>>> > > :408)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Ab
>>>>>>>> > > s
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > act
>>>>>>>> > > Htt
>>>>>>>> > > p1
>>>>>>>> > > 1Processor.java:1023)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>> > > p
>>>>>>>> > > roc
>>>>>>>> > > ess
>>>>>>>> > > (A
>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>>>>>>>> > > J
>>>>>>>> > > I
>>>>>>>> > > o
>>>>>>>> > > End
>>>>>>>> > > poi
>>>>>>>> > > nt
>>>>>>>> > > .java:310)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoo
>>>>>>>> > > l
>>>>>>>> > > E
>>>>>>>> > > x
>>>>>>>> > > ecu
>>>>>>>> > > 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
>>>>>>>> > > >
>>>>>>>> > > >
>>>>>>>> > > >
>>>>>>>> > >
>>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Can you rebuild openwebbeans and tomee? the issue seems fixed. Or did
you fix it in your sample?
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  <dm...@eiskonzept.com>:
> Got it! A have reproduced the issue. See my test app: https://github.com/eiskonzept/tomee
>
> AbstractDelegatingMap class was the cause. See PassivationCapableBean.
>
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 12:03
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
>> I use only apache CODI 1.0.5. There are no other CDI extensions.
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 11:42
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>>
>> 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  <dm...@eiskonzept.com>:
>>> No, there is no beans which are intercepting themselves.
>>>
>>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>>
>>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>>
>>> There is an exception which is logged on the node to which session is replicated:
>>>
>>> SEVERE: Unable to deserialize MapMessage.
>>> java.io.EOFException
>>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>>         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)
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>>> An: users@tomee.apache.org
>>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>>
>>> 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 <rm...@gmail.com>:
>>>> 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 <rm...@gmail.com>:
>>>>> 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  <dm...@eiskonzept.com>:
>>>>>> 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?
>>>>>> u
>>>>>> s
>>>>>> p=sharing
>>>>>>
>>>>>>
>>>>>> -----Ursprüngliche Nachricht-----
>>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>>> An: users@tomee.apache.org
>>>>>> 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/
>>>>>> s
>>>>>> r
>>>>>> c/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 <rm...@gmail.com>:
>>>>>>> Hi
>>>>>>>
>>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>>
>>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>>> An: users@tomee.apache.org
>>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>>
>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>>> > An: users@tomee.apache.org
>>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>>> >
>>>>>>>> > > 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(ObjectOutputStr
>>>>>>>> > e
>>>>>>>> > a
>>>>>>>> > m.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.writ
>>>>>>>> > e
>>>>>>>> > E
>>>>>>>> > xte
>>>>>>>> > rna
>>>>>>>> > l(DeltaRequest.java:392)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delt
>>>>>>>> > a
>>>>>>>> > R
>>>>>>>> > equ
>>>>>>>> > 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.replica
>>>>>>>> > t
>>>>>>>> > e
>>>>>>>> > (Ab
>>>>>>>> > str
>>>>>>>> > actReplicatedMap.java:424)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(
>>>>>>>> > B
>>>>>>>> > a
>>>>>>>> > cku
>>>>>>>> > pMa
>>>>>>>> > nager.java:104)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationVa
>>>>>>>> > l
>>>>>>>> > v
>>>>>>>> > e.j
>>>>>>>> > ava
>>>>>>>> > :539)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replic
>>>>>>>> > a
>>>>>>>> > t
>>>>>>>> > ion
>>>>>>>> > Val
>>>>>>>> > ve.java:526)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplica
>>>>>>>> > t
>>>>>>>> > i
>>>>>>>> > onM
>>>>>>>> > ess
>>>>>>>> > age(ReplicationValve.java:508)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMes
>>>>>>>> > s
>>>>>>>> > a
>>>>>>>> > ge(
>>>>>>>> > Rep
>>>>>>>> > licationValve.java:421)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replication
>>>>>>>> > V
>>>>>>>> > a
>>>>>>>> > lve
>>>>>>>> > .ja
>>>>>>>> > va:345)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
>>>>>>>> > t
>>>>>>>> > e
>>>>>>>> > r.j
>>>>>>>> > ava
>>>>>>>> > :408)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstr
>>>>>>>> > a
>>>>>>>> > c
>>>>>>>> > tHt
>>>>>>>> > tp1
>>>>>>>> > 1Processor.java:1023)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.p
>>>>>>>> > r
>>>>>>>> > o
>>>>>>>> > ces
>>>>>>>> > s(A
>>>>>>>> > bstractProtocol.java:589)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIo
>>>>>>>> > E
>>>>>>>> > n
>>>>>>>> > dpo
>>>>>>>> > int
>>>>>>>> > .java:312)
>>>>>>>> > >         at
>>>>>>>> > >
>>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolEx
>>>>>>>> > e
>>>>>>>> > c
>>>>>>>> > uto
>>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>>> > > An: users@tomee.apache.org
>>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>>> > >
>>>>>>>> > > > 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(ObjectOutputS
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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(ObjectOutputS
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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(ObjectOutputS
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > eam
>>>>>>>> > > .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.wr
>>>>>>>> > > i
>>>>>>>> > > t
>>>>>>>> > > eEx
>>>>>>>> > > ter
>>>>>>>> > > na
>>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(De
>>>>>>>> > > l
>>>>>>>> > > t
>>>>>>>> > > aRe
>>>>>>>> > > que
>>>>>>>> > > st
>>>>>>>> > > .java:285)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaR
>>>>>>>> > > e
>>>>>>>> > > q
>>>>>>>> > > ues
>>>>>>>> > > t.j
>>>>>>>> > > av
>>>>>>>> > > a:299)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>>> > > 143)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.repli
>>>>>>>> > > c
>>>>>>>> > > a
>>>>>>>> > > te(
>>>>>>>> > > Abs
>>>>>>>> > > tr
>>>>>>>> > > actReplicatedMap.java:424)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComplete
>>>>>>>> > > d
>>>>>>>> > > (
>>>>>>>> > > Bac
>>>>>>>> > > kup
>>>>>>>> > > Ma
>>>>>>>> > > nager.java:104)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replication
>>>>>>>> > > V
>>>>>>>> > > a
>>>>>>>> > > lve
>>>>>>>> > > .ja
>>>>>>>> > > va
>>>>>>>> > > :539)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repl
>>>>>>>> > > i
>>>>>>>> > > c
>>>>>>>> > > ati
>>>>>>>> > > onV
>>>>>>>> > > al
>>>>>>>> > > ve.java:526)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepli
>>>>>>>> > > c
>>>>>>>> > > a
>>>>>>>> > > tio
>>>>>>>> > > nMe
>>>>>>>> > > ss
>>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationM
>>>>>>>> > > e
>>>>>>>> > > s
>>>>>>>> > > sag
>>>>>>>> > > 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(CoyoteAd
>>>>>>>> > > a
>>>>>>>> > > p
>>>>>>>> > > ter
>>>>>>>> > > .ja
>>>>>>>> > > va
>>>>>>>> > > :408)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>>>>>>>> > > t
>>>>>>>> > > r
>>>>>>>> > > act
>>>>>>>> > > Htt
>>>>>>>> > > p1
>>>>>>>> > > 1Processor.java:1023)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>>> > > p
>>>>>>>> > > roc
>>>>>>>> > > ess
>>>>>>>> > > (A
>>>>>>>> > > bstractProtocol.java:589)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(J
>>>>>>>> > > I
>>>>>>>> > > o
>>>>>>>> > > End
>>>>>>>> > > poi
>>>>>>>> > > nt
>>>>>>>> > > .java:310)
>>>>>>>> > > >         at
>>>>>>>> > > >
>>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>>>>>> > > E
>>>>>>>> > > x
>>>>>>>> > > ecu
>>>>>>>> > > 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
>>>>>>>> > > >
>>>>>>>> > > >
>>>>>>>> > > >
>>>>>>>> > >
>>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
Got it! A have reproduced the issue. See my test app: https://github.com/eiskonzept/tomee 

AbstractDelegatingMap class was the cause. See PassivationCapableBean. 


-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 12:03
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Can be related to apache codi extensions 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  <dm...@eiskonzept.com>:
> I use only apache CODI 1.0.5. There are no other CDI extensions.
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 11:42
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>
> 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  <dm...@eiskonzept.com>:
>> No, there is no beans which are intercepting themselves.
>>
>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>
>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>
>> There is an exception which is logged on the node to which session is replicated:
>>
>> SEVERE: Unable to deserialize MapMessage.
>> java.io.EOFException
>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>         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)
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> 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 <rm...@gmail.com>:
>>> 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 <rm...@gmail.com>:
>>>> 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  <dm...@eiskonzept.com>:
>>>>> 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?
>>>>> u
>>>>> s
>>>>> p=sharing
>>>>>
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>> An: users@tomee.apache.org
>>>>> 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/
>>>>> s
>>>>> r
>>>>> c/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 <rm...@gmail.com>:
>>>>>> Hi
>>>>>>
>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>
>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>> An: users@tomee.apache.org
>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>
>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>> > An: users@tomee.apache.org
>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>> >
>>>>>>> > > 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(ObjectOutputStr
>>>>>>> > e
>>>>>>> > a
>>>>>>> > m.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.writ
>>>>>>> > e
>>>>>>> > E
>>>>>>> > xte
>>>>>>> > rna
>>>>>>> > l(DeltaRequest.java:392)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delt
>>>>>>> > a
>>>>>>> > R
>>>>>>> > equ
>>>>>>> > 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.replica
>>>>>>> > t
>>>>>>> > e
>>>>>>> > (Ab
>>>>>>> > str
>>>>>>> > actReplicatedMap.java:424)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(
>>>>>>> > B
>>>>>>> > a
>>>>>>> > cku
>>>>>>> > pMa
>>>>>>> > nager.java:104)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationVa
>>>>>>> > l
>>>>>>> > v
>>>>>>> > e.j
>>>>>>> > ava
>>>>>>> > :539)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replic
>>>>>>> > a
>>>>>>> > t
>>>>>>> > ion
>>>>>>> > Val
>>>>>>> > ve.java:526)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplica
>>>>>>> > t
>>>>>>> > i
>>>>>>> > onM
>>>>>>> > ess
>>>>>>> > age(ReplicationValve.java:508)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMes
>>>>>>> > s
>>>>>>> > a
>>>>>>> > ge(
>>>>>>> > Rep
>>>>>>> > licationValve.java:421)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(Replication
>>>>>>> > V
>>>>>>> > a
>>>>>>> > lve
>>>>>>> > .ja
>>>>>>> > va:345)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
>>>>>>> > t
>>>>>>> > e
>>>>>>> > r.j
>>>>>>> > ava
>>>>>>> > :408)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstr
>>>>>>> > a
>>>>>>> > c
>>>>>>> > tHt
>>>>>>> > tp1
>>>>>>> > 1Processor.java:1023)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.p
>>>>>>> > r
>>>>>>> > o
>>>>>>> > ces
>>>>>>> > s(A
>>>>>>> > bstractProtocol.java:589)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIo
>>>>>>> > E
>>>>>>> > n
>>>>>>> > dpo
>>>>>>> > int
>>>>>>> > .java:312)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolEx
>>>>>>> > e
>>>>>>> > c
>>>>>>> > uto
>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>> > > An: users@tomee.apache.org
>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>> > >
>>>>>>> > > > 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(ObjectOutputS
>>>>>>> > > t
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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(ObjectOutputS
>>>>>>> > > t
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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(ObjectOutputS
>>>>>>> > > t
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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.wr
>>>>>>> > > i
>>>>>>> > > t
>>>>>>> > > eEx
>>>>>>> > > ter
>>>>>>> > > na
>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(De
>>>>>>> > > l
>>>>>>> > > t
>>>>>>> > > aRe
>>>>>>> > > que
>>>>>>> > > st
>>>>>>> > > .java:285)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaR
>>>>>>> > > e
>>>>>>> > > q
>>>>>>> > > ues
>>>>>>> > > t.j
>>>>>>> > > av
>>>>>>> > > a:299)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>> > > 143)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.repli
>>>>>>> > > c
>>>>>>> > > a
>>>>>>> > > te(
>>>>>>> > > Abs
>>>>>>> > > tr
>>>>>>> > > actReplicatedMap.java:424)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.BackupManager.requestComplete
>>>>>>> > > d
>>>>>>> > > (
>>>>>>> > > Bac
>>>>>>> > > kup
>>>>>>> > > Ma
>>>>>>> > > nager.java:104)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(Replication
>>>>>>> > > V
>>>>>>> > > a
>>>>>>> > > lve
>>>>>>> > > .ja
>>>>>>> > > va
>>>>>>> > > :539)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repl
>>>>>>> > > i
>>>>>>> > > c
>>>>>>> > > ati
>>>>>>> > > onV
>>>>>>> > > al
>>>>>>> > > ve.java:526)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionRepli
>>>>>>> > > c
>>>>>>> > > a
>>>>>>> > > tio
>>>>>>> > > nMe
>>>>>>> > > ss
>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationM
>>>>>>> > > e
>>>>>>> > > s
>>>>>>> > > sag
>>>>>>> > > 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(CoyoteAd
>>>>>>> > > a
>>>>>>> > > p
>>>>>>> > > ter
>>>>>>> > > .ja
>>>>>>> > > va
>>>>>>> > > :408)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>>>>>>> > > t
>>>>>>> > > r
>>>>>>> > > act
>>>>>>> > > Htt
>>>>>>> > > p1
>>>>>>> > > 1Processor.java:1023)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>> > > p
>>>>>>> > > roc
>>>>>>> > > ess
>>>>>>> > > (A
>>>>>>> > > bstractProtocol.java:589)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(J
>>>>>>> > > I
>>>>>>> > > o
>>>>>>> > > End
>>>>>>> > > poi
>>>>>>> > > nt
>>>>>>> > > .java:310)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>>>>> > > E
>>>>>>> > > x
>>>>>>> > > ecu
>>>>>>> > > 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
>>>>>>> > > >
>>>>>>> > > >
>>>>>>> > > >
>>>>>>> > >
>>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Can be related to apache codi extensions
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  <dm...@eiskonzept.com>:
> I use only apache CODI 1.0.5. There are no other CDI extensions.
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 11:42
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?
>
> 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  <dm...@eiskonzept.com>:
>> No, there is no beans which are intercepting themselves.
>>
>> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>>
>> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>>
>> There is an exception which is logged on the node to which session is replicated:
>>
>> SEVERE: Unable to deserialize MapMessage.
>> java.io.EOFException
>>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>>         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)
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 11:00
>> An: users@tomee.apache.org
>> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>>
>> 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 <rm...@gmail.com>:
>>> 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 <rm...@gmail.com>:
>>>> 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  <dm...@eiskonzept.com>:
>>>>> 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?u
>>>>> s
>>>>> p=sharing
>>>>>
>>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>>> An: users@tomee.apache.org
>>>>> 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/s
>>>>> r
>>>>> c/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 <rm...@gmail.com>:
>>>>>> Hi
>>>>>>
>>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>>
>>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>>> An: users@tomee.apache.org
>>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>>
>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>>> > An: users@tomee.apache.org
>>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>>> >
>>>>>>> > > 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(ObjectOutputStre
>>>>>>> > a
>>>>>>> > m.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.write
>>>>>>> > E
>>>>>>> > xte
>>>>>>> > rna
>>>>>>> > l(DeltaRequest.java:392)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delta
>>>>>>> > R
>>>>>>> > equ
>>>>>>> > 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.replicat
>>>>>>> > e
>>>>>>> > (Ab
>>>>>>> > str
>>>>>>> > actReplicatedMap.java:424)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(B
>>>>>>> > a
>>>>>>> > cku
>>>>>>> > pMa
>>>>>>> > nager.java:104)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationVal
>>>>>>> > v
>>>>>>> > e.j
>>>>>>> > ava
>>>>>>> > :539)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replica
>>>>>>> > t
>>>>>>> > ion
>>>>>>> > Val
>>>>>>> > ve.java:526)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicat
>>>>>>> > i
>>>>>>> > onM
>>>>>>> > ess
>>>>>>> > age(ReplicationValve.java:508)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMess
>>>>>>> > a
>>>>>>> > ge(
>>>>>>> > Rep
>>>>>>> > licationValve.java:421)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationV
>>>>>>> > a
>>>>>>> > lve
>>>>>>> > .ja
>>>>>>> > va:345)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapt
>>>>>>> > e
>>>>>>> > r.j
>>>>>>> > ava
>>>>>>> > :408)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstra
>>>>>>> > c
>>>>>>> > tHt
>>>>>>> > tp1
>>>>>>> > 1Processor.java:1023)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.pr
>>>>>>> > o
>>>>>>> > ces
>>>>>>> > s(A
>>>>>>> > bstractProtocol.java:589)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoE
>>>>>>> > n
>>>>>>> > dpo
>>>>>>> > int
>>>>>>> > .java:312)
>>>>>>> > >         at
>>>>>>> > >
>>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExe
>>>>>>> > c
>>>>>>> > uto
>>>>>>> > 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:rmannibucau@gmail.com]
>>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>>> > > An: users@tomee.apache.org
>>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>>> > >
>>>>>>> > > > 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(ObjectOutputSt
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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(ObjectOutputSt
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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(ObjectOutputSt
>>>>>>> > > r
>>>>>>> > > eam
>>>>>>> > > .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.wri
>>>>>>> > > t
>>>>>>> > > eEx
>>>>>>> > > ter
>>>>>>> > > na
>>>>>>> > > l(DeltaRequest.java:392)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Del
>>>>>>> > > t
>>>>>>> > > aRe
>>>>>>> > > que
>>>>>>> > > st
>>>>>>> > > .java:285)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRe
>>>>>>> > > q
>>>>>>> > > ues
>>>>>>> > > t.j
>>>>>>> > > av
>>>>>>> > > a:299)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>>> > > 143)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replic
>>>>>>> > > a
>>>>>>> > > te(
>>>>>>> > > 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(ReplicationV
>>>>>>> > > a
>>>>>>> > > lve
>>>>>>> > > .ja
>>>>>>> > > va
>>>>>>> > > :539)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repli
>>>>>>> > > c
>>>>>>> > > ati
>>>>>>> > > onV
>>>>>>> > > al
>>>>>>> > > ve.java:526)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplic
>>>>>>> > > a
>>>>>>> > > tio
>>>>>>> > > nMe
>>>>>>> > > ss
>>>>>>> > > age(ReplicationValve.java:508)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMe
>>>>>>> > > s
>>>>>>> > > sag
>>>>>>> > > 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(CoyoteAda
>>>>>>> > > p
>>>>>>> > > ter
>>>>>>> > > .ja
>>>>>>> > > va
>>>>>>> > > :408)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abst
>>>>>>> > > r
>>>>>>> > > act
>>>>>>> > > Htt
>>>>>>> > > p1
>>>>>>> > > 1Processor.java:1023)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>>> > > p
>>>>>>> > > roc
>>>>>>> > > ess
>>>>>>> > > (A
>>>>>>> > > bstractProtocol.java:589)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JI
>>>>>>> > > o
>>>>>>> > > End
>>>>>>> > > poi
>>>>>>> > > nt
>>>>>>> > > .java:310)
>>>>>>> > > >         at
>>>>>>> > > >
>>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolE
>>>>>>> > > x
>>>>>>> > > ecu
>>>>>>> > > 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
>>>>>>> > > >
>>>>>>> > > >
>>>>>>> > > >
>>>>>>> > >
>>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
I use only apache CODI 1.0.5. There are no other CDI extensions. 

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 11:42
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

do you use an extension which could provide beans and interceptors which are serializable but not passivationcapabale?

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  <dm...@eiskonzept.com>:
> No, there is no beans which are intercepting themselves.
>
> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>
> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>
> There is an exception which is logged on the node to which session is replicated:
>
> SEVERE: Unable to deserialize MapMessage.
> java.io.EOFException
>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>         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)
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 11:00
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> 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 <rm...@gmail.com>:
>> 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 <rm...@gmail.com>:
>>> 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  <dm...@eiskonzept.com>:
>>>> 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?u
>>>> s
>>>> p=sharing
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>> An: users@tomee.apache.org
>>>> 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/s
>>>> r 
>>>> c/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 <rm...@gmail.com>:
>>>>> Hi
>>>>>
>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>
>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>> An: users@tomee.apache.org
>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>
>>>>>> > 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:rmannibucau@gmail.com]
>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>> > An: users@tomee.apache.org
>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>> >
>>>>>> > > 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(ObjectOutputStre
>>>>>> > a
>>>>>> > m.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.write
>>>>>> > E
>>>>>> > xte
>>>>>> > rna
>>>>>> > l(DeltaRequest.java:392)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delta
>>>>>> > R
>>>>>> > equ
>>>>>> > 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.replicat
>>>>>> > e
>>>>>> > (Ab
>>>>>> > str
>>>>>> > actReplicatedMap.java:424)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(B
>>>>>> > a
>>>>>> > cku
>>>>>> > pMa
>>>>>> > nager.java:104)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationVal
>>>>>> > v
>>>>>> > e.j
>>>>>> > ava
>>>>>> > :539)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replica
>>>>>> > t
>>>>>> > ion
>>>>>> > Val
>>>>>> > ve.java:526)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicat
>>>>>> > i
>>>>>> > onM
>>>>>> > ess
>>>>>> > age(ReplicationValve.java:508)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMess
>>>>>> > a
>>>>>> > ge(
>>>>>> > Rep
>>>>>> > licationValve.java:421)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationV
>>>>>> > a
>>>>>> > lve
>>>>>> > .ja
>>>>>> > va:345)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapt
>>>>>> > e
>>>>>> > r.j
>>>>>> > ava
>>>>>> > :408)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstra
>>>>>> > c
>>>>>> > tHt
>>>>>> > tp1
>>>>>> > 1Processor.java:1023)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.pr
>>>>>> > o
>>>>>> > ces
>>>>>> > s(A
>>>>>> > bstractProtocol.java:589)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoE
>>>>>> > n
>>>>>> > dpo
>>>>>> > int
>>>>>> > .java:312)
>>>>>> > >         at
>>>>>> > >
>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExe
>>>>>> > c
>>>>>> > uto
>>>>>> > 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:rmannibucau@gmail.com]
>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>> > > An: users@tomee.apache.org
>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>> > >
>>>>>> > > > 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(ObjectOutputSt
>>>>>> > > r
>>>>>> > > eam
>>>>>> > > .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(ObjectOutputSt
>>>>>> > > r
>>>>>> > > eam
>>>>>> > > .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(ObjectOutputSt
>>>>>> > > r
>>>>>> > > eam
>>>>>> > > .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.wri
>>>>>> > > t
>>>>>> > > eEx
>>>>>> > > ter
>>>>>> > > na
>>>>>> > > l(DeltaRequest.java:392)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Del
>>>>>> > > t
>>>>>> > > aRe
>>>>>> > > que
>>>>>> > > st
>>>>>> > > .java:285)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRe
>>>>>> > > q
>>>>>> > > ues
>>>>>> > > t.j
>>>>>> > > av
>>>>>> > > a:299)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>> > > 143)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replic
>>>>>> > > a
>>>>>> > > te(
>>>>>> > > 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(ReplicationV
>>>>>> > > a
>>>>>> > > lve
>>>>>> > > .ja
>>>>>> > > va
>>>>>> > > :539)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Repli
>>>>>> > > c
>>>>>> > > ati
>>>>>> > > onV
>>>>>> > > al
>>>>>> > > ve.java:526)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplic
>>>>>> > > a
>>>>>> > > tio
>>>>>> > > nMe
>>>>>> > > ss
>>>>>> > > age(ReplicationValve.java:508)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMe
>>>>>> > > s
>>>>>> > > sag
>>>>>> > > 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(CoyoteAda
>>>>>> > > p
>>>>>> > > ter
>>>>>> > > .ja
>>>>>> > > va
>>>>>> > > :408)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abst
>>>>>> > > r
>>>>>> > > act
>>>>>> > > Htt
>>>>>> > > p1
>>>>>> > > 1Processor.java:1023)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
>>>>>> > > p
>>>>>> > > roc
>>>>>> > > ess
>>>>>> > > (A
>>>>>> > > bstractProtocol.java:589)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JI
>>>>>> > > o
>>>>>> > > End
>>>>>> > > poi
>>>>>> > > nt
>>>>>> > > .java:310)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolE
>>>>>> > > x
>>>>>> > > ecu
>>>>>> > > 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
>>>>>> > > >
>>>>>> > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
do you use an extension which could provide beans and interceptors
which are serializable but not passivationcapabale?

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  <dm...@eiskonzept.com>:
> No, there is no beans which are intercepting themselves.
>
> I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app.
>
> UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor.
>
> There is an exception which is logged on the node to which session is replicated:
>
> SEVERE: Unable to deserialize MapMessage.
> java.io.EOFException
>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
>         at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
>         at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
>         at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
>         at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>         at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
>         at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
>         at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
>         at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>         at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
>         at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
>         at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
>         at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
>         at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
>         at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
>         at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
>         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)
>
> -----Ursprüngliche Nachricht-----
> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 11:00
> An: users@tomee.apache.org
> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT
>
> 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 <rm...@gmail.com>:
>> 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 <rm...@gmail.com>:
>>> 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  <dm...@eiskonzept.com>:
>>>> 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?us
>>>> p=sharing
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>>> An: users@tomee.apache.org
>>>> 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/sr
>>>> c/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 <rm...@gmail.com>:
>>>>> Hi
>>>>>
>>>>> In a war no idea, maybe active tomcat FINE logs
>>>>>
>>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>>> An: users@tomee.apache.org
>>>>>> 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 <dm...@eiskonzept.com>
>>>>>>
>>>>>> > 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:rmannibucau@gmail.com]
>>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>>> > An: users@tomee.apache.org
>>>>>> > 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 <dm...@eiskonzept.com>
>>>>>> >
>>>>>> > > 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(ObjectOutputStrea
>>>>>> > m.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.writeE
>>>>>> > xte
>>>>>> > rna
>>>>>> > l(DeltaRequest.java:392)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaR
>>>>>> > equ
>>>>>> > 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(Ba
>>>>>> > cku
>>>>>> > pMa
>>>>>> > nager.java:104)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValv
>>>>>> > e.j
>>>>>> > ava
>>>>>> > :539)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replicat
>>>>>> > ion
>>>>>> > Val
>>>>>> > ve.java:526)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicati
>>>>>> > onM
>>>>>> > ess
>>>>>> > age(ReplicationValve.java:508)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessa
>>>>>> > ge(
>>>>>> > Rep
>>>>>> > licationValve.java:421)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationVa
>>>>>> > lve
>>>>>> > .ja
>>>>>> > va:345)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapte
>>>>>> > r.j
>>>>>> > ava
>>>>>> > :408)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstrac
>>>>>> > tHt
>>>>>> > tp1
>>>>>> > 1Processor.java:1023)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.pro
>>>>>> > ces
>>>>>> > s(A
>>>>>> > bstractProtocol.java:589)
>>>>>> > >         at
>>>>>> > >
>>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEn
>>>>>> > dpo
>>>>>> > int
>>>>>> > .java:312)
>>>>>> > >         at
>>>>>> > >
>>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
>>>>>> > uto
>>>>>> > 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:rmannibucau@gmail.com]
>>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>>> > > An: users@tomee.apache.org
>>>>>> > > 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 <dm...@eiskonzept.com>
>>>>>> > >
>>>>>> > > > 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(ObjectOutputStr
>>>>>> > > eam
>>>>>> > > .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(ObjectOutputStr
>>>>>> > > eam
>>>>>> > > .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(ObjectOutputStr
>>>>>> > > eam
>>>>>> > > .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.writ
>>>>>> > > eEx
>>>>>> > > ter
>>>>>> > > na
>>>>>> > > l(DeltaRequest.java:392)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delt
>>>>>> > > aRe
>>>>>> > > que
>>>>>> > > st
>>>>>> > > .java:285)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaReq
>>>>>> > > ues
>>>>>> > > t.j
>>>>>> > > av
>>>>>> > > a:299)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>>> > > 143)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replica
>>>>>> > > te(
>>>>>> > > 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(ReplicationVa
>>>>>> > > lve
>>>>>> > > .ja
>>>>>> > > va
>>>>>> > > :539)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replic
>>>>>> > > ati
>>>>>> > > onV
>>>>>> > > al
>>>>>> > > ve.java:526)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplica
>>>>>> > > tio
>>>>>> > > nMe
>>>>>> > > ss
>>>>>> > > age(ReplicationValve.java:508)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMes
>>>>>> > > sag
>>>>>> > > 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(CoyoteAdap
>>>>>> > > ter
>>>>>> > > .ja
>>>>>> > > va
>>>>>> > > :408)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstr
>>>>>> > > act
>>>>>> > > Htt
>>>>>> > > p1
>>>>>> > > 1Processor.java:1023)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.p
>>>>>> > > roc
>>>>>> > > ess
>>>>>> > > (A
>>>>>> > > bstractProtocol.java:589)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIo
>>>>>> > > End
>>>>>> > > poi
>>>>>> > > nt
>>>>>> > > .java:310)
>>>>>> > > >         at
>>>>>> > > >
>>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolEx
>>>>>> > > ecu
>>>>>> > > 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
>>>>>> > > >
>>>>>> > > >
>>>>>> > > >
>>>>>> > >
>>>>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
No, there is no beans which are intercepting themselves. 

I have tried different Bean/Interceptor combinations, but still can't reproduce the issue in my sample app. 

UserSettings is just usual Bean and I don't know why OWB trying to serialize it as interceptor. 

There is an exception which is logged on the node to which session is replicated: 

SEVERE: Unable to deserialize MapMessage.
java.io.EOFException
	at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
	at java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(ObjectInputStream.java:2781)
	at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2837)
	at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1069)
	at org.apache.webbeans.intercept.DefaultInterceptorHandler.readExternal(DefaultInterceptorHandler.java:226)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
	at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:757)
	at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:554)
	at org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:529)
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1810)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
	at org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
	at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1424)
	at org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1380)
	at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:606)
	at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:279)
	at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
	at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117)
	at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
	at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
	at org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:90)
	at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84)
	at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253)
	at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287)
	at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212)
	at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:101)
	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)

-----Ursprüngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 11:00
An: users@tomee.apache.org
Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

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 <rm...@gmail.com>:
> 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 <rm...@gmail.com>:
>> 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  <dm...@eiskonzept.com>:
>>> 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?us
>>> p=sharing
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>> An: users@tomee.apache.org
>>> 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/sr
>>> c/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 <rm...@gmail.com>:
>>>> Hi
>>>>
>>>> In a war no idea, maybe active tomcat FINE logs
>>>>
>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>> An: users@tomee.apache.org
>>>>> 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 <dm...@eiskonzept.com>
>>>>>
>>>>> > 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:rmannibucau@gmail.com]
>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>> > An: users@tomee.apache.org
>>>>> > 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 <dm...@eiskonzept.com>
>>>>> >
>>>>> > > 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(ObjectOutputStrea
>>>>> > m.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.writeE
>>>>> > xte
>>>>> > rna
>>>>> > l(DeltaRequest.java:392)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaR
>>>>> > equ
>>>>> > 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(Ba
>>>>> > cku
>>>>> > pMa
>>>>> > nager.java:104)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValv
>>>>> > e.j
>>>>> > ava
>>>>> > :539)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replicat
>>>>> > ion
>>>>> > Val
>>>>> > ve.java:526)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicati
>>>>> > onM
>>>>> > ess
>>>>> > age(ReplicationValve.java:508)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessa
>>>>> > ge(
>>>>> > Rep
>>>>> > licationValve.java:421)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationVa
>>>>> > lve
>>>>> > .ja
>>>>> > va:345)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapte
>>>>> > r.j
>>>>> > ava
>>>>> > :408)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstrac
>>>>> > tHt
>>>>> > tp1
>>>>> > 1Processor.java:1023)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.pro
>>>>> > ces
>>>>> > s(A
>>>>> > bstractProtocol.java:589)
>>>>> > >         at
>>>>> > >
>>>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEn
>>>>> > dpo
>>>>> > int
>>>>> > .java:312)
>>>>> > >         at
>>>>> > >
>>>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
>>>>> > uto
>>>>> > 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:rmannibucau@gmail.com]
>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>> > > An: users@tomee.apache.org
>>>>> > > 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 <dm...@eiskonzept.com>
>>>>> > >
>>>>> > > > 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(ObjectOutputStr
>>>>> > > eam
>>>>> > > .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(ObjectOutputStr
>>>>> > > eam
>>>>> > > .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(ObjectOutputStr
>>>>> > > eam
>>>>> > > .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.writ
>>>>> > > eEx
>>>>> > > ter
>>>>> > > na
>>>>> > > l(DeltaRequest.java:392)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(Delt
>>>>> > > aRe
>>>>> > > que
>>>>> > > st
>>>>> > > .java:285)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaReq
>>>>> > > ues
>>>>> > > t.j
>>>>> > > av
>>>>> > > a:299)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:
>>>>> > > 143)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replica
>>>>> > > te(
>>>>> > > 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(ReplicationVa
>>>>> > > lve
>>>>> > > .ja
>>>>> > > va
>>>>> > > :539)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replic
>>>>> > > ati
>>>>> > > onV
>>>>> > > al
>>>>> > > ve.java:526)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplica
>>>>> > > tio
>>>>> > > nMe
>>>>> > > ss
>>>>> > > age(ReplicationValve.java:508)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMes
>>>>> > > sag
>>>>> > > 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(CoyoteAdap
>>>>> > > ter
>>>>> > > .ja
>>>>> > > va
>>>>> > > :408)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstr
>>>>> > > act
>>>>> > > Htt
>>>>> > > p1
>>>>> > > 1Processor.java:1023)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.p
>>>>> > > roc
>>>>> > > ess
>>>>> > > (A
>>>>> > > bstractProtocol.java:589)
>>>>> > > >         at
>>>>> > > >
>>>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIo
>>>>> > > End
>>>>> > > poi
>>>>> > > nt
>>>>> > > .java:310)
>>>>> > > >         at
>>>>> > > >
>>>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolEx
>>>>> > > ecu
>>>>> > > 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
>>>>> > > >
>>>>> > > >
>>>>> > > >
>>>>> > >
>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <rm...@gmail.com>:
> 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 <rm...@gmail.com>:
>> 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  <dm...@eiskonzept.com>:
>>> 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:rmannibucau@gmail.com]
>>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>>> An: users@tomee.apache.org
>>> 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 <rm...@gmail.com>:
>>>> Hi
>>>>
>>>> In a war no idea, maybe active tomcat FINE logs
>>>>
>>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>>> An: users@tomee.apache.org
>>>>> 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 <dm...@eiskonzept.com>
>>>>>
>>>>> > 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:rmannibucau@gmail.com]
>>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>>> > An: users@tomee.apache.org
>>>>> > 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 <dm...@eiskonzept.com>
>>>>> >
>>>>> > > 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:rmannibucau@gmail.com]
>>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>>> > > An: users@tomee.apache.org
>>>>> > > 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 <dm...@eiskonzept.com>
>>>>> > >
>>>>> > > > 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
>>>>> > > >
>>>>> > > >
>>>>> > > >
>>>>> > >
>>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <rm...@gmail.com>:
> 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  <dm...@eiskonzept.com>:
>> 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:rmannibucau@gmail.com]
>> Gesendet: Donnerstag, 31. Oktober 2013 06:51
>> An: users@tomee.apache.org
>> 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 <rm...@gmail.com>:
>>> Hi
>>>
>>> In a war no idea, maybe active tomcat FINE logs
>>>
>>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>>> Gesendet: Dienstag, 6. August 2013 12:18
>>>> An: users@tomee.apache.org
>>>> 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 <dm...@eiskonzept.com>
>>>>
>>>> > 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:rmannibucau@gmail.com]
>>>> > Gesendet: Montag, 5. August 2013 10:10
>>>> > An: users@tomee.apache.org
>>>> > 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 <dm...@eiskonzept.com>
>>>> >
>>>> > > 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:rmannibucau@gmail.com]
>>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>>> > > An: users@tomee.apache.org
>>>> > > 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 <dm...@eiskonzept.com>
>>>> > >
>>>> > > > 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
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > >
>>>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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  <dm...@eiskonzept.com>:
> 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:rmannibucau@gmail.com]
> Gesendet: Donnerstag, 31. Oktober 2013 06:51
> An: users@tomee.apache.org
> 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 <rm...@gmail.com>:
>> Hi
>>
>> In a war no idea, maybe active tomcat FINE logs
>>
>> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>>> Gesendet: Dienstag, 6. August 2013 12:18
>>> An: users@tomee.apache.org
>>> 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 <dm...@eiskonzept.com>
>>>
>>> > 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:rmannibucau@gmail.com]
>>> > Gesendet: Montag, 5. August 2013 10:10
>>> > An: users@tomee.apache.org
>>> > 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 <dm...@eiskonzept.com>
>>> >
>>> > > 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:rmannibucau@gmail.com]
>>> > > Gesendet: Freitag, 2. August 2013 16:15
>>> > > An: users@tomee.apache.org
>>> > > 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 <dm...@eiskonzept.com>
>>> > >
>>> > > > 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
>>> > > >
>>> > > >
>>> > > >
>>> > >
>>> >

AW: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by dm...@eiskonzept.com.
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:rmannibucau@gmail.com] 
Gesendet: Donnerstag, 31. Oktober 2013 06:51
An: users@tomee.apache.org
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 <rm...@gmail.com>:
> Hi
>
> In a war no idea, maybe active tomcat FINE logs
>
> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>> Gesendet: Dienstag, 6. August 2013 12:18
>> An: users@tomee.apache.org
>> 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 <dm...@eiskonzept.com>
>>
>> > 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:rmannibucau@gmail.com]
>> > Gesendet: Montag, 5. August 2013 10:10
>> > An: users@tomee.apache.org
>> > 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 <dm...@eiskonzept.com>
>> >
>> > > 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:rmannibucau@gmail.com]
>> > > Gesendet: Freitag, 2. August 2013 16:15
>> > > An: users@tomee.apache.org
>> > > 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 <dm...@eiskonzept.com>
>> > >
>> > > > 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
>> > > >
>> > > >
>> > > >
>> > >
>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <rm...@gmail.com>:
> Hi
>
> In a war no idea, maybe active tomcat FINE logs
>
> Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
>> Gesendet: Dienstag, 6. August 2013 12:18
>> An: users@tomee.apache.org
>> 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 <dm...@eiskonzept.com>
>>
>> > 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:rmannibucau@gmail.com]
>> > Gesendet: Montag, 5. August 2013 10:10
>> > An: users@tomee.apache.org
>> > 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 <dm...@eiskonzept.com>
>> >
>> > > 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.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.writeExterna
>> > l(DeltaRequest.java:392)
>> > >         at
>> > >
>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest
>> > .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(Abstr
>> > actReplicatedMap.java:424)
>> > >         at
>> > >
>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(BackupMa
>> > nager.java:104)
>> > >         at
>> > >
>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java
>> > :539)
>> > >         at
>> > >
>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationVal
>> > ve.java:526)
>> > >         at
>> > >
>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMess
>> > 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.java
>> > :408)
>> > >         at
>> > >
>> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp1
>> > 1Processor.java:1023)
>> > >         at
>> > >
>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A
>> > bstractProtocol.java:589)
>> > >         at
>> > >
>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint
>> > .java:312)
>> > >         at
>> > >
>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.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:rmannibucau@gmail.com]
>> > > Gesendet: Freitag, 2. August 2013 16:15
>> > > An: users@tomee.apache.org
>> > > 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 <dm...@eiskonzept.com>
>> > >
>> > > > 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.writeExter
>> > > na
>> > > l(DeltaRequest.java:392)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaReque
>> > > st
>> > > .java:285)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.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(Backup
>> > > Ma
>> > > nager.java:104)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.ja
>> > > va
>> > > :539)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationV
>> > > al
>> > > ve.java:526)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMe
>> > > ss
>> > > age(ReplicationValve.java:508)
>> > > >         at
>> > > >
>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(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(AbstractHtt
>> > > p1
>> > > 1Processor.java:1023)
>> > > >         at
>> > > >
>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
>> > > (A
>> > > bstractProtocol.java:589)
>> > > >         at
>> > > >
>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoi
>> > > nt
>> > > .java:310)
>> > > >         at
>> > > >
>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor
>> > > .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
>> > > >
>> > > >
>> > > >
>> > >
>> >

Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi

In a war no idea, maybe active tomcat FINE logs
Le 30 oct. 2013 19:14, <dm...@eiskonzept.com> 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:rmannibucau@gmail.com]
> Gesendet: Dienstag, 6. August 2013 12:18
> An: users@tomee.apache.org
> 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 <dm...@eiskonzept.com>
>
> > 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:rmannibucau@gmail.com]
> > Gesendet: Montag, 5. August 2013 10:10
> > An: users@tomee.apache.org
> > 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 <dm...@eiskonzept.com>
> >
> > > 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.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.writeExterna
> > l(DeltaRequest.java:392)
> > >         at
> > >
> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest
> > .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(Abstr
> > actReplicatedMap.java:424)
> > >         at
> > >
> > org.apache.catalina.ha.session.BackupManager.requestCompleted(BackupMa
> > nager.java:104)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java
> > :539)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationVal
> > ve.java:526)
> > >         at
> > >
> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMess
> > 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.java
> > :408)
> > >         at
> > >
> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp1
> > 1Processor.java:1023)
> > >         at
> > >
> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A
> > bstractProtocol.java:589)
> > >         at
> > >
> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint
> > .java:312)
> > >         at
> > >
> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.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:rmannibucau@gmail.com]
> > > Gesendet: Freitag, 2. August 2013 16:15
> > > An: users@tomee.apache.org
> > > 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 <dm...@eiskonzept.com>
> > >
> > > > 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.writeExter
> > > na
> > > l(DeltaRequest.java:392)
> > > >         at
> > > >
> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaReque
> > > st
> > > .java:285)
> > > >         at
> > > >
> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.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(Backup
> > > Ma
> > > nager.java:104)
> > > >         at
> > > >
> > > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.ja
> > > va
> > > :539)
> > > >         at
> > > >
> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationV
> > > al
> > > ve.java:526)
> > > >         at
> > > >
> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMe
> > > ss
> > > age(ReplicationValve.java:508)
> > > >         at
> > > >
> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(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(AbstractHtt
> > > p1
> > > 1Processor.java:1023)
> > > >         at
> > > >
> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
> > > (A
> > > bstractProtocol.java:589)
> > > >         at
> > > >
> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoi
> > > nt
> > > .java:310)
> > > >         at
> > > >
> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor
> > > .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
> > > >
> > > >
> > > >
> > >
> >
>