[infinispan-dev] tccl usage in listeners

Ales Justin ales.justin at gmail.com
Tue Aug 30 08:01:43 EDT 2011


While working on OpenShift Flex Infinispan demo, we came across a TCCL setup issue.

---

Looking at the stack trace, and how listener is registered,
I don't see how Ispan+CDI integration can change this behavior:

Imo, it should be Ispan's job to properly change this.
e.g. wrap each listener invocation with listener' classloader as tccl

---

as imo it's not cdi integration's job
as it cannot change this
at least i don't see how
and same issue can happen for any other framework
where listener gets invoked, and that framework used later in the execution chain, depends on the right tccl
this issue only popped up due to cluster formation
as the other node's code is invoked via Ispan' distribution mechanism
1:48
in standalone you would always get this invoked via app' execution chain

---

12:01:24,243 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (Incoming-9,demo,matej-ntb-32416) ISPN000136: Execution error: org.infinispan.CacheException: Caught exception [java.
lang.IllegalStateException] while invoking method [public void org.infinispan.quickstart.jbossas7.LoggingListener.observeAdd(org.infinispan.notifications.cachelistener.event.CacheEntryCreatedEven
t)] on listener instance: org.infinispan.quickstart.jbossas7.LoggingListener at 301f417
       at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation$1.run(AbstractListenerImpl.java:204) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:48) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.invoke(AbstractListenerImpl.java:217) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryCreated(CacheNotifierImpl.java:151) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.container.EntryFactoryImpl.wrapEntryForWriting(EntryFactoryImpl.java:174) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.container.EntryFactoryImpl.wrapEntryForWriting(EntryFactoryImpl.java:109) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.LockingInterceptor.visitPutKeyValueCommand(LockingInterceptor.java:293) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.MarshalledValueInterceptor.visitPutKeyValueCommand(MarshalledValueInterceptor.java:140) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:214) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.TxInterceptor.visitPutKeyValueCommand(TxInterceptor.java:162) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.DistTxInterceptor.visitPutKeyValueCommand(DistTxInterceptor.java:129) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:114) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:104) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:64) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.IsMarshallableInterceptor.visitPutKeyValueCommand(IsMarshallableInterceptor.java:94) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:61) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:60) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:274) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:71) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:62) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:181) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:195) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithRetry(InboundInvocationHandlerImpl.java:309) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:167) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:165) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:144) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
       at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:577) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:488) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:364) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:770) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.JChannel.up(JChannel.java:1484) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1074) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:477) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:263) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.FRAG2.up(FRAG2.java:189) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.FlowControl.up(FlowControl.java:400) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.FlowControl.up(FlowControl.java:418) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.GMS.up(GMS.java:908) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.VIEW_SYNC.up(VIEW_SYNC.java:170) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:246) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.UNICAST.up(UNICAST.java:309) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:838) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:667) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.BARRIER.up(BARRIER.java:123) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:133) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.FD.up(FD.java:275) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:275) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.MERGE2.up(MERGE2.java:209) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.Discovery.up(Discovery.java:293) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.PING.up(PING.java:69) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.TP.passMessageUp(TP.java:1109) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1665) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1647) [jgroups-2.12.1.3.Final.jar:2.12.1.3.Final]
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_23]
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_23]
       at java.lang.Thread.run(Thread.java:662) [:1.6.0_23]
Caused by: java.lang.IllegalStateException: Singleton not set for ModuleClassLoader for Module "org.jboss.as.clustering.infinispan:main" from local module loader @624b035d (roots: D:\java\runtime
s\jboss-as-7.1.0.Alpha1-SNAPSHOT-B\modules)
       at org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:71)
       at org.jboss.weld.Container.instance(Container.java:58)
       at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:72)
       at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:87)
       at org.infinispan.quickstart.jbossas7.CacheEventsManager$Proxy$_$$_WeldClientProxy.addEvent(CacheEventsManager$Proxy$_$$_WeldClientProxy.java)
       at org.infinispan.quickstart.jbossas7.LoggingListener.observeAdd(LoggingListener.java:30)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23]
       at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]
       at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation$1.run(AbstractListenerImpl.java:200) [infinispan-core-5.0.0.FINAL.jar:5.0.0.FINAL]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20110830/7041ad7b/attachment-0001.html 


More information about the infinispan-dev mailing list