Ok, I integrate it with the subscription code in and give it a try,
Thanks Martin From: [email protected] [mailto:[email protected]] On Behalf Of Isuru Haththotuwa Sent: Thursday, September 18, 2014 9:54 PM To: [email protected] Cc: Martin Eppel (meppel) Subject: Re: Updated Task List Hi Martin, It seems the relevant tenant information is not set properly in the thread local carbon context. This is happening since Topology events, such as the Application Created event, are received in a separate thread, and the tenant information is not set in that particular thread. To overcome this, we need to start a tenant flow, with the relevant tenant information, prior to creating the ApplicationSubscription and persisting it. I have shown a sample below [1]. Please let me know if this works for you. [1]. try { PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); carbonContext.setTenantDomain(<relevant_tenant_domain>); carbonContext.setTenantId(<relevant_tenant_id>); // call create Application Subscription and persist } finally { PrivilegedCarbonContext.endTenantFlow(); } On Fri, Sep 19, 2014 at 12:42 AM, Martin Eppel (meppel) <[email protected]<mailto:[email protected]>> wrote: Hi Isuru, I verified the fix for the jira [1]. https://issues.apache.org/jira/browse/STRATOS-805 and it works, the event gets delivered. However I do face another issue, see exception below, I opened a JIRA for it: https://issues.apache.org/jira/browse/STRATOS-806 Thanks Martin TID: [0] [STRATOS] [2014-09-18 18:50:53,313] DEBUG {org.apache.stratos.manager.manager.CartridgeSubscriptionManager} - createCompositeAppSubscription for appId: test_app3 and tenantId: -1234 {org.apache.stratos.manager.manager.CartridgeSubscriptionManager} TID: [0] [STRATOS] [2014-09-18 18:50:53,320] ERROR {org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator} - Failed to retrieve topology event message {org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator} java.lang.NullPointerException: Tenant domain has not been set in CarbonContext at org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:79) at org.wso2.carbon.registry.core.utils.RegistryUtils.getCacheManager(RegistryUtils.java:288) at org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:271) at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getCache(CacheBackedRegistry.java:62) at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.resourceExists(CacheBackedRegistry.java:246) at org.wso2.carbon.registry.core.session.UserRegistry.resourceExists(UserRegistry.java:629) at org.apache.stratos.manager.registry.RegistryManager.initRegistry(RegistryManager.java:83) at org.apache.stratos.manager.registry.RegistryManager.retrieve(RegistryManager.java:185) at org.apache.stratos.manager.persistence.RegistryBasedPersistenceManager.getSubscription(RegistryBasedPersistenceManager.java:438) at org.apache.stratos.manager.persistence.RegistryBasedPersistenceManager.getCompositeAppSubscription(RegistryBasedPersistenceManager.java:429) at org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager.getCompositeAppSubscription(DataInsertionAndRetrievalManager.java:405) at org.apache.stratos.manager.manager.CartridgeSubscriptionManager.createCompositeAppSubscription(CartridgeSubscriptionManager.java:102) at org.apache.stratos.manager.topology.receiver.StratosManagerTopologyEventReceiver$9.onEvent(StratosManagerTopologyEventReceiver.java:303) at org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42) at java.util.Observable.notifyObservers(Observable.java:159) at org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51) at org.apache.stratos.messaging.message.processor.topology.ApplicationCreatedMessageProcessor.process(ApplicationCreatedMessageProcessor.java:77) at org.apache.stratos.messaging.message.processor.topology.GroupActivatedProcessor.process(GroupActivatedProcessor.java:37) at org.apache.stratos.messaging.message.processor.topology.MemberTerminatedMessageProcessor.process(MemberTerminatedMessageProcessor.java:133) at org.apache.stratos.messaging.message.processor.topology.MemberSuspendedMessageProcessor.process(MemberSuspendedMessageProcessor.java:143) at org.apache.stratos.messaging.message.processor.topology.MemberMaintenanceModeProcessor.process(MemberMaintenanceModeProcessor.java:142) at org.apache.stratos.messaging.message.processor.topology.MemberReadyToShutdownMessageProcessor.process(MemberReadyToShutdownMessageProcessor.java:141) at org.apache.stratos.messaging.message.processor.topology.MemberActivatedMessageProcessor.process(MemberActivatedMessageProcessor.java:158) at org.apache.stratos.messaging.message.processor.topology.MemberStartedMessageProcessor.process(MemberStartedMessageProcessor.java:144) at org.apache.stratos.messaging.message.processor.topology.InstanceSpawnedMessageProcessor.process(InstanceSpawnedMessageProcessor.java:135) at org.apache.stratos.messaging.message.processor.topology.ClusterRemovedMessageProcessor.process(ClusterRemovedMessageProcessor.java:108) at org.apache.stratos.messaging.message.processor.topology.ClusterMaintenanceModeMessageProcessor.process(ClusterMaintenanceModeMessageProcessor.java:109) at org.apache.stratos.messaging.message.processor.topology.ClusterActivatedProcessor.process(ClusterActivatedProcessor.java:37) at org.apache.stratos.messaging.message.processor.topology.ClusterCreatedMessageProcessor.process(ClusterCreatedMessageProcessor.java:117) at org.apache.stratos.messaging.message.processor.topology.ServiceRemovedMessageProcessor.process(ServiceRemovedMessageProcessor.java:87) at org.apache.stratos.messaging.message.processor.topology.ServiceCreatedMessageProcessor.process(ServiceCreatedMessageProcessor.java:87) at org.apache.stratos.messaging.message.processor.topology.CompleteTopologyMessageProcessor.process(CompleteTopologyMessageProcessor.java:151) at org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:60) at org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator.run(TopologyEventMessageDelegator.java:77) at java.lang.Thread.run(Thread.java:745)
