diff --git a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/throttling/ThrottleHandler.java b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/throttling/ThrottleHandler.java index d674ffe462a7..0fe948033067 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/throttling/ThrottleHandler.java +++ b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/throttling/ThrottleHandler.java @@ -917,7 +917,10 @@ private void initThrottleForApplicationLevelSpikeArrest(MessageContext synCtx, if (createApplicationLevelSpikeArrestPolicy) { synchronized (authenticationContext.getSubscriberTenantDomain() + - authenticationContext.getApplicationTier().intern()) { + authenticationContext.getApplicationTier().intern() + "_appSpikeArrest") { + if (throttle.getThrottleContext(applicationLevelThrottleKey) != null) { + return; + } OMElement spikeArrestApplicationLevelPolicy = createSpikeArrestApplicationLevelPolicy( applicationLevelThrottleKey, maxRequestCount, applicationSpikeArrestWindowUnitTime); if (spikeArrestApplicationLevelPolicy != null) { diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/APIKeyValidationInfoDTO.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/APIKeyValidationInfoDTO.java index f76186d65f51..8de5147c0bf8 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/APIKeyValidationInfoDTO.java +++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/dto/APIKeyValidationInfoDTO.java @@ -57,9 +57,6 @@ public class APIKeyValidationInfoDTO implements Serializable { //should be its first element. private List throttlingDataList; private int spikeArrestLimit; - - - private int applicationSpikeArrestLimit; private String subscriberTenantDomain; private String spikeArrestUnit; diff --git a/components/apimgt/org.wso2.carbon.apimgt.internal.service/src/main/java/org/wso2/carbon/apimgt/internal/service/utils/SubscriptionValidationDataUtil.java b/components/apimgt/org.wso2.carbon.apimgt.internal.service/src/main/java/org/wso2/carbon/apimgt/internal/service/utils/SubscriptionValidationDataUtil.java index 10e5665f9f42..0deb5a7b818b 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.internal.service/src/main/java/org/wso2/carbon/apimgt/internal/service/utils/SubscriptionValidationDataUtil.java +++ b/components/apimgt/org.wso2.carbon.apimgt.internal.service/src/main/java/org/wso2/carbon/apimgt/internal/service/utils/SubscriptionValidationDataUtil.java @@ -39,7 +39,32 @@ import org.wso2.carbon.apimgt.api.model.subscription.Subscription; import org.wso2.carbon.apimgt.api.model.subscription.SubscriptionPolicy; import org.wso2.carbon.apimgt.api.model.subscription.URLMapping; -import org.wso2.carbon.apimgt.internal.service.dto.*; +import org.wso2.carbon.apimgt.internal.service.dto.APIDTO; +import org.wso2.carbon.apimgt.internal.service.dto.APIListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApiPolicyConditionGroupDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApiPolicyDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApiPolicyListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationKeyMappingDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationKeyMappingListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationPolicyDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ApplicationPolicyListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.BandwidthLimitDTO; +import org.wso2.carbon.apimgt.internal.service.dto.BurstLimitDTO; +import org.wso2.carbon.apimgt.internal.service.dto.EventCountLimitDTO; +import org.wso2.carbon.apimgt.internal.service.dto.GlobalPolicyDTO; +import org.wso2.carbon.apimgt.internal.service.dto.GlobalPolicyListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.GroupIdDTO; +import org.wso2.carbon.apimgt.internal.service.dto.RequestCountLimitDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ScopeDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ScopesListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.SubscriptionDTO; +import org.wso2.carbon.apimgt.internal.service.dto.SubscriptionListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.SubscriptionPolicyDTO; +import org.wso2.carbon.apimgt.internal.service.dto.SubscriptionPolicyListDTO; +import org.wso2.carbon.apimgt.internal.service.dto.ThrottleLimitDTO; +import org.wso2.carbon.apimgt.internal.service.dto.URLMappingDTO; import org.wso2.carbon.apimgt.rest.api.common.RestApiCommonUtil; import org.wso2.carbon.utils.multitenancy.MultitenantConstants;