]
Brian Stansberry commented on EJBTHREE-746:
-------------------------------------------
Here's what's happening:
1) initial passivation
2) listener calls get() on cache so it can call prepassivate on the bean -- get() call
adds event to eviction queue
3) evict thread runs again
4) event in queue from #2 causes another attempt to evict fqn
5) passivation interceptor -- no node in memory, but notification is still issued
6) listener again issues a get(Fqn) (as in #2)
7) get() hits activation interceptor -- node gets activated into memory, removed from
persistent store
8) eviction call continues down interceptor chain from passivation interceptor, hits cache
and evicts the node from memory -- now gone from memory and persistent store
Couple things need to happen:
a) in #2 above we want to avoid adding an event to the queue. This can be done in 1.4
with a peek() call; in 2.0 with Option.setBypassInterceptorChain(). This is a change
I'll make in the EJB3 code, unless I can think of a better way.
b) in #5 we want to not send a notification if the node wasn't in memory. This is a
JBC change. I don't think this is doable in 1.4, but it can be done in 2.0.
injection of clustered SFSB fails during activation
---------------------------------------------------
Key: EJBTHREE-746
URL:
http://jira.jboss.com/jira/browse/EJBTHREE-746
Project: EJB 3.0
Issue Type: Bug
Affects Versions: EJB 3.0 RC9 - FD
Reporter: William DeCoste
Assigned To: Brian Stansberry
Injecting clustered SFSB fails during activation:
14:57:42,237 ERROR [STDERR] javax.ejb.EJBNoSuchObjectException: Could not find Stateful
bean: 4sg3a33-etojrw-eszuinl5-1-et4t44tc-1t
14:57:42,237 ERROR [STDERR] at
org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:268)
14:57:42,237 ERROR [STDERR] at
org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:61)
14:57:42,237 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,237 ERROR [STDERR] at
org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:167)
14:57:42,237 ERROR [STDERR] at
org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:108)
14:57:42,237 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:131)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:86)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
14:57:42,253 ERROR [STDERR] at $Proxy913.initialize(I)V(Unknown Source)
14:57:42,253 ERROR [STDERR] at
com.insight.xvs.ejb.logic.NightlyDeterminationServiceEjb.performNightlyDetermination(NightlyDeterminationServiceEjb.java:75)
14:57:42,253 ERROR [STDERR] at
jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown
Source)
14:57:42,253 ERROR [STDERR] at
java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown
Source)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:116)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
14:57:42,253 ERROR [STDERR] at
org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
14:57:42,253 ERROR [STDERR] at
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
14:57:42,253 ERROR [STDERR] at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: