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)


Reply via email to