Thanks for responses.Will commit this fix to branch now.

Thanks;


On Wed, Aug 28, 2013 at 6:09 AM, Chanika Geeganage <[email protected]> wrote:

> I tested DSS datasource creating in tenant mode by applying this patch and
> it is working
>
>
> On Wed, Aug 28, 2013 at 5:11 PM, Senaka Fernando <[email protected]> wrote:
>
>> Hi Ratha,
>>
>> Looks proper to me. You can probably validate with integration tests
>> related to events/DS.
>>
>> Thanks,
>> Senaka.
>>
>>
>> On Wed, Aug 28, 2013 at 3:51 PM, Anjana Fernando <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> Chanika, please check on this. We once talked with Sameera on what is we
>>> are suppose to use here, and we did the changes according to that.
>>>
>>> Cheers,
>>> Anjana.
>>>
>>>
>>> On Wed, Aug 28, 2013 at 3:44 PM, Vijayaratha Vijayasingam <
>>> [email protected]> wrote:
>>>
>>>> Hi all;
>>>> The reason is,  there are "Axis2ConfigurationContextObserver"
>>>> implementations at Event +datasource components and where, tenantID/domain
>>>> is set to "currentContext()"
>>>>
>>>> eg: PrivilegedCarbonContext.getCurrentContext().setTenantId(tenantId,
>>>> true);
>>>>
>>>> Changed that to "ThreadLocalCarbonContext" and now issue is solved.
>>>>
>>>>  eg:
>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId,
>>>> true);
>>>>
>>>> @senaka,anjana..
>>>> I have attached the patch which contains above change..Please check and
>>>> let us know if there any issue..
>>>> Else, we will commit that to branch
>>>>
>>>> Thanks.
>>>>
>>>>
>>>> On 27 August 2013 17:47, Vijayaratha Vijayasingam <[email protected]>wrote:
>>>>
>>>>>
>>>>> Hi all;
>>>>> We are facing a severe blocker in APIM 4.2.0 based product..
>>>>> When we publish an API from publisher to gateway following error[1] is
>>>>> thrown and APIs are not deployed in tenant space.
>>>>>
>>>>> *what we do is*
>>>>>
>>>>> In the Admin service (RESTAPI admin) we set tenant domain explicitly
>>>>> and creating  CarbonContext  using  getThreadLocalCarbonContext(). 
>>>>> (Because
>>>>> there is an issue at AbstarctAdmin service, where it creates CarbonContext
>>>>> using  PrivilegedCarbonContext.getCurrentContext, and that always contains
>>>>> SuperTenant domain in  it. This was discussed at the last release time and
>>>>> as a solution  we overwrites that method from our end to use
>>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext() )
>>>>>
>>>>> Our sample AdminService code is;
>>>>>
>>>>> public boolean addApiForTenant(String apiData, String tenantDomain)
>>>>> throws APIException {
>>>>> try {
>>>>>  PrivilegedCarbonContext.startTenantFlow();
>>>>>
>>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain,
>>>>>
>>>>>  true);
>>>>> boolean status = addApiFromString(apiData);
>>>>>  return status;
>>>>> } finally {
>>>>> PrivilegedCarbonContext.endTenantFlow();
>>>>>  }
>>>>> }
>>>>>
>>>>> //overwriting this
>>>>> protected ConfigurationContext getConfigContext() {
>>>>> .....................................................................
>>>>> PrivilegedCarbonContext carbonContext =
>>>>>  PrivilegedCarbonContext.getThreadLocalCarbonContext();
>>>>> String domain = carbonContext.getTenantDomain();
>>>>>  if (domain != null &&
>>>>> !MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(domain)) {
>>>>> System.out.println(" Tenant domain *********" +domain);
>>>>>  return TenantAxisUtils.getTenantConfigurationContext(domain,
>>>>> mainConfigContext);
>>>>> .....................................................
>>>>> }
>>>>>
>>>>> Can anyone point us, what we do wrong here?
>>>>>
>>>>> Thanks..
>>>>>
>>>>>
>>>>> [1]
>>>>> 2013-08-27 16:55:49,126]  INFO - CarbonAuthenticationUtil
>>>>> '[email protected] [-1234]' logged in at [2013-08-27
>>>>> 16:55:49,125+0530]
>>>>>  Tenant domain *********test.com
>>>>> [2013-08-27 16:55:49,152] ERROR -
>>>>> EventAxis2ConfigurationContextObserver Error in setting tenant information
>>>>> 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.user.core.authorization.PermissionTree.getPermissionTreeCache(PermissionTree.java:91)
>>>>>         at
>>>>> org.wso2.carbon.user.core.authorization.PermissionTree.updatePermissionTree(PermissionTree.java:905)
>>>>>         at
>>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.isRoleAuthorized(JDBCAuthorizationManager.java:117)
>>>>>         at
>>>>> org.wso2.carbon.event.core.internal.CarbonEventBroker.initializeTenant(CarbonEventBroker.java:97)
>>>>>         at
>>>>> org.wso2.carbon.event.core.internal.builder.EventAxis2ConfigurationContextObserver.creatingConfigurationContext(EventAxis2ConfigurationCont
>>>>> extObserver.java:30)
>>>>>         at
>>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.doPreConfigContextCreation(TenantAxisUtils.java:507)
>>>>>         at
>>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(TenantAxisUtils.java:302)
>>>>>         at
>>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.getTenantConfigurationContext(TenantAxisUtils.java:135)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getConfigContext(RestApiAdmin.java:750)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getAxisConfig(RestApiAdmin.java:731)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getLock(RestApiAdmin.java:713)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getApiByName(RestApiAdmin.java:417)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getApiForTenant(RestApiAdmin.java:445)
>>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>         at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>         at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>         at
>>>>> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
>>>>>         at
>>>>> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
>>>>>         at
>>>>> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>>>>>         at
>>>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>>>>>         at
>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>>>         at
>>>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
>>>>>         at
>>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
>>>>>         at
>>>>> org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231)
>>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>         at
>>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>>>>         at
>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>>>>         at
>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
>>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>>>>         at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>>>>>         at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>>>>>         at
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>>>>>         at
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>>         at
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>>>>>         at
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>>>>>         at
>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>>>>>         at
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>>>>>         at
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>>         at
>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
>>>>>         at
>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>>>>>         at
>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
>>>>>         at
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>>>         at
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>>>>>         at
>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>>>>>         at
>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>>>>>         at
>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
>>>>>          at
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>>>>>         at
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>>>>>         at java.lang.Thread.run(Thread.java:662)
>>>>> [2013-08-27 16:55:49,168]  INFO - TenantAxisConfigurator Creating
>>>>> tenant AxisConfiguration for tenant: test.com[1]
>>>>> [2013-08-27 16:55:49,458]  INFO - UserStoreConfigurationDeployer User
>>>>> Store Configuration Deployer initiated.
>>>>> [2013-08-27 16:55:50,236]  INFO - TenantServiceBusInitializer
>>>>> Intializing the ESB Configuration for the tenant domain : test.com
>>>>> [2013-08-27 16:55:50,239]  INFO - SynapseControllerFactory Using
>>>>> Synapse home : 
>>>>> C:\Users\TOSH\Desktop\WSO2AM~1.0\bin\..\repository\tenants\1
>>>>> [2013-08-27 16:55:50,240]  INFO - SynapseControllerFactory Using
>>>>> synapse.xml location :
>>>>> C:\Users\TOSH\Desktop\WSO2AM~1.0\bin\..\repository\tenants\1\s
>>>>> ynapse-configs\default
>>>>> [2013-08-27 16:55:50,241]  INFO - SynapseControllerFactory Using
>>>>> server name : synapse.test.com
>>>>> [2013-08-27 16:55:50,244]  INFO - SynapseControllerFactory The timeout
>>>>> handler will run every : 15s
>>>>> [2013-08-27 16:55:50,247]  INFO - Axis2SynapseController Initializing
>>>>> Synapse at : Tue Aug 27 16:55:50 IST 2013
>>>>> [2013-08-27 16:55:50,255]  INFO - CarbonSynapseController Loading the
>>>>> mediation configuration from the file system
>>>>> [2013-08-27 16:55:50,257]  INFO - MultiXMLConfigurationBuilder
>>>>> Building synapse configuration from the synapse artifact repository at :
>>>>> C:\Users\TOSH\
>>>>> Desktop\WSO2AM~1.0\bin\..\repository\tenants\1\synapse-configs\default
>>>>> [2013-08-27 16:55:50,283]  INFO - SynapseConfigurationBuilder Loaded
>>>>> Synapse configuration from the artifact repository at :
>>>>> C:\Users\TOSH\Desktop\WSO
>>>>> 2AM~1.0\bin\..\repository\tenants\1\synapse-configs\default
>>>>> [2013-08-27 16:55:50,284]  INFO - Axis2SynapseController Loading
>>>>> mediator extensions...
>>>>> [2013-08-27 16:55:50,290]  INFO - Axis2SynapseController Deploying the
>>>>> Synapse service...
>>>>> [2013-08-27 16:55:50,291]  INFO - Axis2SynapseController Deploying
>>>>> Proxy services...
>>>>> [2013-08-27 16:55:50,292]  INFO - Axis2SynapseController Deploying
>>>>> EventSources...
>>>>> [2013-08-27 16:55:50,295]  INFO - ServerManager Server ready for
>>>>> processing...
>>>>> [2013-08-27 16:55:50,343]  WARN - MediationStatisticsServiceComponent
>>>>> Couldn't find the mediation statistics store for tenant id: 1
>>>>> [2013-08-27 16:55:50,382]  INFO - PermissionUpdater Permission cache
>>>>> updated for tenant 1
>>>>> [2013-08-27 16:55:50,384] ERROR - TenantAxisUtils Error occurred while
>>>>> running deployment for tenant test.com
>>>>> 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.wso2.carbon.datasource.DataSourceInformationManager.populateDataSourceInformation(DataSourceInformationManager.java:62)
>>>>>         at
>>>>> org.wso2.carbon.datasource.multitenancy.DataSourceInitializer.createdConfigurationContext(DataSourceInitializer.java:73)
>>>>>         at
>>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(TenantAxisUtils.java:342)
>>>>>         at
>>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.getTenantConfigurationContext(TenantAxisUtils.java:135)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getConfigContext(RestApiAdmin.java:750)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getAxisConfig(RestApiAdmin.java:731)
>>>>>         at
>>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getLock(RestApiAdmin.java:713)
>>>>>         at org.wso2.carbo
>>>>>
>>>>> --
>>>>> -Ratha
>>>>> mobile: (+94)755906608
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> -Ratha
>>>> mobile: (+94)755906608
>>>>
>>>
>>>
>>>
>>> --
>>> *Anjana Fernando*
>>> Technical Lead
>>>  WSO2 Inc. | http://wso2.com
>>> lean . enterprise . middleware
>>>
>>
>>
>>
>> --
>> * <http://us13.wso2con.com/>
>> *
>> *
>> *
>> *Senaka Fernando*
>> Senior Technical Lead; WSO2 Inc.; http://wso2.com*
>> Member; Apache Software Foundation; http://apache.org
>>
>> E-mail: senaka AT wso2.com
>> **P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818
>> Linked-In: http://linkedin.com/in/senakafernando
>>
>> *Lean . Enterprise . Middleware
>>
>
>
>
> --
> Best Regards..
>
> Chanika Geeganage
> Software Engineer
> WSO2, Inc.; http://wso2.com
>
> Mobile: +94773522586
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Lalaji Sureshika
WSO2, Inc.;  http://wso2.com/
email: [email protected]; cell: +94 71 608 6811
blog: http://lalajisureshika.blogspot.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to