Hi Guys, Sorry if this not the right channel but I was wondering what the procedure is to contribute patches and bug fixes.
I have been experiencing a Heisenbug on the wso2esb 4.6.0 / stratos 1.6.0. It appears that the buggy code is in org.wso2.carbon.proxyadmin.ProxyServiceDeployer.init(ConfigurationContext configCtx). The while loop is waiting for the MediationPersistenceManager to be initialized and I assume is supposed to retry 10 times which should be *while(mpm == null && retry < 10)* . However, the conditional states *while(mpm == null || retry < 10).* Which causes two problems, one very trivial, the other not so much. 1) The while loop will always execute ten times 2) The MediationPersistenceManager is initialised in org.wso2.carbon.mediation.initializer.multitenancy.TenantServiceBusInitializer and the order in which TenantServiceBusInitializer or ProxyAdminServiceComponent (or any other Axis2ConfigurationContextObserver) gets invoked via org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(ConfigurationContext mainConfigCtx, String tenantDomain) is non-deterministic (from what I can see). The problem here is that when the TenantServiceBusInitializer.createdConfigurationContext(ConfigurationContext configContext) is set to be invoked after ProxyAdminServiceComponent..createdConfigurationContext(ConfigurationContext configContext), due to the ordering of the array of services returned by the org.osgi.util.tracker.ServiceTracker, the loop in org.wso2.carbon.proxyadmin.ProxyServiceDeployer.init(ConfigurationContext configCtx) never completes and TenantServiceBusInitializer. createdConfigurationContext(ConfigurationContext configContext) is never invoked. The user will then experience an exception when trying to access any of the synapse component UIs because of a NullPointer thrown when the associated Admin classes try to obtain a lock via AbstractServiceBusAdmin.getLock() Many thanks, Kevin
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
