Always deriving one from the other is expensive, so we expect both ID &
domain to be set as much as possible wherever both are available

--
Afkham Azeez
Sent from my phone
On Aug 5, 2013 12:09 AM, "Kasun Gajasinghe" <[email protected]> wrote:

> Seems the tenant domain resolving should happen in CarbonContext. The
> CacheManagerFactory simply do a
> CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
>
>
> On Sun, Aug 4, 2013 at 11:31 PM, Kasun Gajasinghe <[email protected]> wrote:
>
>> Hi,
>>
>> If tenant domain is not set, we can derive it via tenant id, right? But
>> the method getCacheManager in CacheManagerFactoryImpl [1] do not do this,
>> and therefore fails with a NPE. Following error was observed when a
>> datasource addition triggered a cluster notification, and the worker node
>> tried to process it. Only the tenant id is set in the cluster message.
>>
>> [1] org.wso2.carbon.caching.impl.CacheManagerFactoryImpl#getCacheManager
>>
>>
>> [2013-08-04 23:15:36,947] ERROR
>> {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusterMessageListener}
>> -  Cannot process ClusteringMessage
>> org.apache.axis2.clustering.ClusteringFault: Error in handling data
>> source stat message: Error in updating data source 'test' from registry
>> [remove:false]: Tenant domain has not been set in CarbonContext
>>  at
>> org.wso2.carbon.ndatasource.core.DataSourceStatMessage.execute(DataSourceStatMessage.java:74)
>> at
>> org.wso2.carbon.core.clustering.hazelcast.HazelcastClusterMessageListener.onMessage(HazelcastClusterMessageListener.java:54)
>>  at
>> com.hazelcast.impl.ListenerManager.callListener(ListenerManager.java:419)
>> at
>> com.hazelcast.impl.ListenerManager.callListeners(ListenerManager.java:334)
>>  at com.hazelcast.impl.BaseManager$2.run(BaseManager.java:1392)
>> at
>> com.hazelcast.impl.executor.ParallelExecutorService$ParallelExecutorImpl$ExecutionSegment.run(ParallelExecutorService.java:212)
>>  at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>  at java.lang.Thread.run(Thread.java:662)
>> at
>> com.hazelcast.impl.ExecutorThreadFactory$1.run(ExecutorThreadFactory.java:45)
>> Caused by: org.wso2.carbon.ndatasource.common.DataSourceException: Error
>> in updating data source 'test' from registry [remove:false]: Tenant domain
>> has not been set in CarbonContext
>> at
>> org.wso2.carbon.ndatasource.core.DataSourceRepository.updateDataSource(DataSourceRepository.java:186)
>>  at
>> org.wso2.carbon.ndatasource.core.DataSourceRepository.refreshUserDataSource(DataSourceRepository.java:157)
>> at
>> org.wso2.carbon.ndatasource.core.DataSourceStatMessage.execute(DataSourceStatMessage.java:71)
>>  ... 9 more
>> *Caused by: 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:289)
>> at
>> org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:272)
>>  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.wso2.carbon.ndatasource.core.DataSourceRepository.getDataSourceMetaInfoFromRegistryPath(DataSourceRepository.java:409)
>>  at
>> org.wso2.carbon.ndatasource.core.DataSourceRepository.updateDataSource(DataSourceRepository.java:164)
>> ... 11 more
>>
>>
>> --
>> *Kasun Gajasinghe*
>> Software Engineer;
>> Development Technologies Team, WSO2 Inc.; http://wso2.com
>>
>>
>>  ,
>> *email: **kasung AT spamfree wso2.com
>>
>>
>> ** cell: **+94 (77) 678-0813*
>> *linked-in: *http://lk.linkedin.com/in/gajasinghe
>>
>>
>> *
>> *
>> *blog: **http://kasunbg.org* <http://kasunbg.org>
>>
>>
>> *
>> twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg>
>>
>>
>> *
>> *
>>
>
>
>
> --
> *Kasun Gajasinghe*
> Software Engineer;
> Development Technologies Team, WSO2 Inc.; http://wso2.com
>
>
>  ,
> *email: **kasung AT spamfree wso2.com
>
>
> ** cell: **+94 (77) 678-0813*
> *linked-in: *http://lk.linkedin.com/in/gajasinghe
>
>
> *
> *
> *blog: **http://kasunbg.org* <http://kasunbg.org>
>
>
> *
> twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg>
>
>
> *
> *
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to