Return-Path: X-Original-To: apmail-stratos-dev-archive@minotaur.apache.org Delivered-To: apmail-stratos-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 30DD311B44 for ; Fri, 19 Sep 2014 04:54:47 +0000 (UTC) Received: (qmail 97483 invoked by uid 500); 19 Sep 2014 04:54:47 -0000 Delivered-To: apmail-stratos-dev-archive@stratos.apache.org Received: (qmail 97433 invoked by uid 500); 19 Sep 2014 04:54:47 -0000 Mailing-List: contact dev-help@stratos.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stratos.apache.org Delivered-To: mailing list dev@stratos.apache.org Received: (qmail 97423 invoked by uid 99); 19 Sep 2014 04:54:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Sep 2014 04:54:46 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of isuruh@wso2.com designates 209.85.215.41 as permitted sender) Received: from [209.85.215.41] (HELO mail-la0-f41.google.com) (209.85.215.41) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Sep 2014 04:54:20 +0000 Received: by mail-la0-f41.google.com with SMTP id s18so2458992lam.28 for ; Thu, 18 Sep 2014 21:54:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wso2.com; s=google; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=ppJFuH+R3tzr8GvebMZGG1q5T13BHzJrGkjG7nPAo2w=; b=IEsTXG1svgZkyp6eW4VwZW8XBMD7jKW1qDpLPdnKZKXumIVuN7aYeCavOWSKrO/0fs 7QXgEDvUx3P2EYVBdSz/mZx9lie6fhTxd48YbWBFP1L1AjM9wM5WcqQsQ0155xvfYB7i lk8TCIUfTjdN+hSUc7NhI7fF++uB52ZqyljSA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ppJFuH+R3tzr8GvebMZGG1q5T13BHzJrGkjG7nPAo2w=; b=GqL6CgP8cfQi2M3RrvQL6XHw/URwVF1YeZdEUajDF9eod2NTr4lr/6N/CW9BuXpAEM cQF/i4cRDGsYAdWPywBSmiVfA+ngtqIWiFarLgOUn5MbEvTYHgCQKePkRArzsWgfr2Xg ueRq02oRh9HjQ9oWG1ZSX/lmwFYuDRCFR3YlT/1R6wU3w5qSSkvxmyrbaKR8yG9cpMQP 54a785/hxSQAvUsUamc0NsOAq++Fl3mZxhkaplC4hAxucsNZtK8toGNp9yAbGADql56A r/0ooZ0I0/1rsEAnEXIcU40y4tB/aqkp9NAfk9L0er7Th/aVEkm6fq0QbBOOJqOeKppr AoEQ== X-Gm-Message-State: ALoCoQnnpbsJMmBKFBSLx8VoDruupfEEO6HhYZIHJhqfTd6C97eypLol42p3DqZGJ2pg5ikqkNj3 MIME-Version: 1.0 X-Received: by 10.152.206.35 with SMTP id ll3mr4038205lac.88.1411102459325; Thu, 18 Sep 2014 21:54:19 -0700 (PDT) Sender: isuruh@wso2.com Received: by 10.112.133.200 with HTTP; Thu, 18 Sep 2014 21:54:19 -0700 (PDT) In-Reply-To: <07110D8A7AC60C49AE2432100017A3F62777A6CE@xmb-rcd-x12.cisco.com> References: <07110D8A7AC60C49AE2432100017A3F627779A68@xmb-rcd-x12.cisco.com> <07110D8A7AC60C49AE2432100017A3F62777A3FD@xmb-rcd-x12.cisco.com> <07110D8A7AC60C49AE2432100017A3F62777A6CE@xmb-rcd-x12.cisco.com> Date: Fri, 19 Sep 2014 10:24:19 +0530 X-Google-Sender-Auth: el_xvQWHt0FiPNylZlBIcMZ7tpM Message-ID: Subject: Re: Updated Task List From: Isuru Haththotuwa To: "dev@stratos.apache.org" Cc: "Martin Eppel (meppel)" Content-Type: multipart/alternative; boundary=001a11348914d4845d050363e498 X-Virus-Checked: Checked by ClamAV on apache.org --001a11348914d4845d050363e498 Content-Type: text/plain; charset=UTF-8 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(); carbonContext.setTenantId(); // call create Application Subscription and persist } finally { PrivilegedCarbonContext.endTenantFlow(); } On Fri, Sep 19, 2014 at 12:42 AM, Martin Eppel (meppel) 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) > > > --001a11348914d4845d050363e498 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Martin,

It seems the relevant te= nant information is not set properly in the thread local carbon context. Th= is is happening since Topology events, such as the Application Created even= t, 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 flo= w, with the relevant tenant information, prior to creating the ApplicationS= ubscription and persisting it. I have shown a sample below [1].

Please let me know if this works for you.

[1]. =C2=A0=C2=A0= =C2=A0 try {
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PrivilegedCarbonContext.startTenantFlow()= ;
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 PrivilegedCarbonContext carbonContext =3D Privi= legedCarbonContext.getThreadLocalCarbonContext();
=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 carbo= nContext.setTenantDomain(<relevant_tenant_domain>);
=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 carbonContext.setTenantId(<relevant_tenant_id>);

=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 // call create Application Subscription and persist

=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } finally {
= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 PrivilegedCarbonContext.endTenantFlow();
=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }


On Fri, Sep 19, 2014 at 12:42 AM, Martin Eppel (meppel) <meppel@c= isco.com> wrote:

Hi Isuru,<= /u>

=C2=A0=

I verified the fix f= or the jira [1]. https://issues.apache.org/jira/browse/STRATOS-805 and it works, the eve= nt gets delivered.

=C2=A0

However I do face another issue, see exception below= , I opened a JIRA for it: https://issues.apache.org/jira/browse/STRATO= S-806

=C2=A0

Thanks

=C2=A0

Martin

=C2=A0=

=C2=A0=

TID: [0] [STRATOS] [= 2014-09-18 18:50:53,313] DEBUG {org.apache.stratos.manager.manager.Cartridg= eSubscriptionManager} -=C2=A0 createCompositeAppSubscription for appId: test_app3 and tenantId: -1234 {org.apache.stratos.manager.manager.Cartridg= eSubscriptionManager}

TID: [0] [STRATOS] [= 2014-09-18 18:50:53,320] ERROR {org.apache.stratos.messaging.message.receiv= er.topology.TopologyEventMessageDelegator} -=C2=A0 Failed to retrieve topology event message {org.apache.stratos.messaging.message.receiver.topo= logy.TopologyEventMessageDelegator}

java.lang.NullPointe= rException: Tenant domain has not been set in CarbonContext

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.caching.impl.CacheManagerFactor= yImpl.getCacheManager(CacheManagerFactoryImpl.java:79)=

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.registry.core.utils.RegistryUti= ls.getCacheManager(RegistryUtils.java:288)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.registry.core.utils.RegistryUti= ls.getResourceCache(RegistryUtils.java:271)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.registry.core.caching.CacheBack= edRegistry.getCache(CacheBackedRegistry.java:62)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.registry.core.caching.CacheBack= edRegistry.resourceExists(CacheBackedRegistry.java:246)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.wso2.carbon.registry.core.session.UserRegis= try.resourceExists(UserRegistry.java:629)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.registry.RegistryMan= ager.initRegistry(RegistryManager.java:83)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.registry.RegistryMan= ager.retrieve(RegistryManager.java:185)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.persistence.Registry= BasedPersistenceManager.getSubscription(RegistryBasedPersistenceManager.jav= a:438)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.persistence.Registry= BasedPersistenceManager.getCompositeAppSubscription(RegistryBasedPersistenc= eManager.java:429)

=C2=A0=C2=A0=C2=A0 = =C2=A0=C2=A0=C2=A0=C2=A0at org.apache.stratos.manager.retriever.DataInserti= onAndRetrievalManager.getCompositeAppSubscription(DataInsertionAndRetrieval= Manager.java:405)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.manager.CartridgeSub= scriptionManager.createCompositeAppSubscription(CartridgeSubscriptionManage= r.java:102)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.manager.topology.receiver.St= ratosManagerTopologyEventReceiver$9.onEvent(StratosManagerTopologyEventRece= iver.java:303)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.listener.EventList= ener.update(EventListener.java:42)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at java.util.Observable.notifyObservers(Observable= .java:159)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.event.EventObserva= ble.notifyEventListeners(EventObservable.java:51)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ApplicationCreatedMessageProcessor.process(ApplicationCreatedMessa= geProcessor.java:77)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.GroupActivatedProcessor.process(GroupActivatedProcessor.java:37)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberTerminatedMessageProcessor.process(MemberTerminatedMessagePr= ocessor.java:133)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberSuspendedMessageProcessor.process(MemberSuspendedMessageProc= essor.java:143)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberMaintenanceModeProcessor.process(MemberMaintenanceModeProces= sor.java:142)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberReadyToShutdownMessageProcessor.process(MemberReadyToShutdow= nMessageProcessor.java:141)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberActivatedMessageProcessor.process(MemberActivatedMessageProc= essor.java:158)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.MemberStartedMessageProcessor.process(MemberStartedMessageProcesso= r.java:144)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.InstanceSpawnedMessageProcessor.process(InstanceSpawnedMessageProc= essor.java:135)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ClusterRemovedMessageProcessor.process(ClusterRemovedMessageProces= sor.java:108)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ClusterMaintenanceModeMessageProcessor.process(ClusterMaintenanceM= odeMessageProcessor.java:109)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ClusterActivatedProcessor.process(ClusterActivatedProcessor.java:3= 7)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ClusterCreatedMessageProcessor.process(ClusterCreatedMessageProces= sor.java:117)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ServiceRemovedMessageProcessor.process(ServiceRemovedMessageProces= sor.java:87)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.ServiceCreatedMessageProcessor.process(ServiceCreatedMessageProces= sor.java:87)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= topology.CompleteTopologyMessageProcessor.process(CompleteTopologyMessagePr= ocessor.java:151)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.processor.= MessageProcessorChain.process(MessageProcessorChain.java:60)<= /span>

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.stratos.messaging.message.receiver.t= opology.TopologyEventMessageDelegator.run(TopologyEventMessageDelegator.jav= a:77)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 at java.lang.Thread.run(Thread.java:745)=



--001a11348914d4845d050363e498--