api-manager
api-manager copied to clipboard
Error handling when loading a malformed 'tenant-conf.json'
Problem
When a malformed "tenant-conf.json" is loaded, the parsing exception is not handled properly. Please find the attached stack trace.
Method threw 'com.google.gson.JsonSyntaxException' exception.
com.google.gson.internal.Streams.parse(Streams.java:58)
com.google.gson.JsonParser.parseReader(JsonParser.java:99)
com.google.gson.JsonParser.parseReader(JsonParser.java:68)
com.google.gson.JsonParser.parseString(JsonParser.java:50)
com.google.gson.JsonParser.parse(JsonParser.java:112)
org.wso2.carbon.apimgt.impl.utils.APIUtil.getFileBaseTenantConfig_aroundBody190(APIUtil.java:3058)
org.wso2.carbon.apimgt.impl.utils.APIUtil.getFileBaseTenantConfig(APIUtil.java:1)
org.wso2.carbon.apimgt.impl.utils.APIUtil.loadAndSyncTenantConf_aroundBody188(APIUtil.java:3043)
org.wso2.carbon.apimgt.impl.utils.APIUtil.loadAndSyncTenantConf(APIUtil.java:1)
org.wso2.carbon.apimgt.impl.internal.APIManagerComponent.activate_aroundBody0(APIManagerComponent.java:230)
rg.wso2.carbon.apimgt.impl.internal.APIManagerComponent.activate(APIManagerComponent.java:1)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ava.base/java.lang.reflect.Method.invoke(Method.java:566)
rg.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
rg.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
rg.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
rg.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
rg.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
rg.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
rg.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
rg.wso2.carbon.identity.oauth2.internal.OAuth2ServiceComponent.activate(OAuth2ServiceComponent.java:178)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ava.base/java.lang.reflect.Method.invoke(Method.java:566)
rg.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
rg.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
rg.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
rg.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
rg.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
rg.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
rg.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:1071)
rg.wso2.carbon.idp.mgt.internal.IdPManagementServiceComponent.activate(IdPManagementServiceComponent.java:240)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ava.base/java.lang.reflect.Method.invoke(Method.java:566)
rg.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
rg.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
rg.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
rg.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
rg.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
rg.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
rg.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:1071)
rg.wso2.carbon.identity.role.mgt.core.internal.RoleManagementServiceComponent.activate(RoleManagementServiceComponent.java:49)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
ava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ava.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ava.base/java.lang.reflect.Method.invoke(Method.java:566)
rg.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
rg.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
rg.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
rg.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
rg.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
rg.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
rg.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
rg.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
rg.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
rg.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
rg.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
org.wso2.carbon.identity.event.internal.IdentityEventServiceComponent.activate(IdentityEventServiceComponent.java:62)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
org.wso2.carbon.identity.core.internal.IdentityCoreServiceComponent.activate(IdentityCoreServiceComponent.java:180)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:529)
org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:305)
org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
Solution
Need to handle the json parsing exception in [1].
[1] https://github.com/wso2/carbon-apimgt/blob/v9.28.114/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java
Affected Component
APIM
Version
4.2.0
Implementation
No response
Related Issues
No response
Suggested Labels
No response