You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2021/08/18 18:35:56 UTC
[pulsar] branch master updated: [server] Fixed Casting Error
(#11697)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new ffaba80 [server] Fixed Casting Error (#11697)
ffaba80 is described below
commit ffaba8063cec33cfa7a76b63c1f1f6ff093b3a78
Author: Abhilash Mandaliya <ab...@gmail.com>
AuthorDate: Thu Aug 19 00:04:28 2021 +0530
[server] Fixed Casting Error (#11697)
* fixed casting error
* added unit test for backlogQuota configuration
* code review changes
* code review changes
* removed http from zookeeperServers config
---
.../pulsar/broker/service/BacklogQuotaManager.java | 2 +-
.../org/apache/pulsar/broker/ConfigHelper.java | 2 +-
.../BacklogQuotaManagerConfigurationTest.java | 85 ++++++++++++++++++++++
3 files changed, 87 insertions(+), 2 deletions(-)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
index f9ccb74..91a03f6 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
@@ -55,7 +55,7 @@ public class BacklogQuotaManager {
this.isTopicLevelPoliciesEnable = pulsar.getConfiguration().isTopicLevelPoliciesEnabled();
double backlogQuotaGB = pulsar.getConfiguration().getBacklogQuotaDefaultLimitGB();
this.defaultQuota = BacklogQuotaImpl.builder()
- .limitSize(backlogQuotaGB > 0 ? (long) backlogQuotaGB * BacklogQuotaImpl.BYTES_IN_GIGABYTE
+ .limitSize(backlogQuotaGB > 0 ? (long) (backlogQuotaGB * BacklogQuotaImpl.BYTES_IN_GIGABYTE)
: pulsar.getConfiguration().getBacklogQuotaDefaultLimitBytes())
.limitTime(pulsar.getConfiguration().getBacklogQuotaDefaultLimitSecond())
.retentionPolicy(pulsar.getConfiguration().getBacklogQuotaDefaultRetentionPolicy())
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/ConfigHelper.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/ConfigHelper.java
index ca8231a..ff5289d 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/ConfigHelper.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/ConfigHelper.java
@@ -39,7 +39,7 @@ public class ConfigHelper {
public static BacklogQuota sizeBacklogQuota(ServiceConfiguration configuration) {
long backlogQuotaBytes = configuration.getBacklogQuotaDefaultLimitGB() > 0
- ? ((long) configuration.getBacklogQuotaDefaultLimitGB() * BacklogQuotaImpl.BYTES_IN_GIGABYTE)
+ ? ((long) (configuration.getBacklogQuotaDefaultLimitGB() * BacklogQuotaImpl.BYTES_IN_GIGABYTE))
: configuration.getBacklogQuotaDefaultLimitBytes();
return BacklogQuota.builder()
.limitSize(backlogQuotaBytes)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BacklogQuotaManagerConfigurationTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BacklogQuotaManagerConfigurationTest.java
new file mode 100644
index 0000000..d05b5a0
--- /dev/null
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BacklogQuotaManagerConfigurationTest.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pulsar.broker.service;
+
+import org.apache.pulsar.broker.PulsarService;
+import org.apache.pulsar.broker.ServiceConfiguration;
+import org.apache.pulsar.broker.cache.ConfigurationCacheService;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertEquals;
+
+@Test(groups = "broker")
+public class BacklogQuotaManagerConfigurationTest {
+
+ private ServiceConfiguration serviceConfiguration;
+ private PulsarService pulsarService;
+
+ @BeforeMethod
+ public void setup() {
+ serviceConfiguration = new ServiceConfiguration();
+ initializeServiceConfiguration();
+ pulsarService = getPulsarService();
+ }
+
+ @Test
+ public void testBacklogQuotaDefaultLimitGBConversion() {
+ serviceConfiguration.setBacklogQuotaDefaultLimitGB(1.6);
+
+ BacklogQuotaManager backlogQuotaManager = new BacklogQuotaManager(pulsarService);
+
+ assertEquals(backlogQuotaManager.getDefaultQuota().getLimitSize(), 1717986918);
+ }
+
+ @Test
+ public void testBacklogQuotaDefaultLimitPrecedence() {
+ serviceConfiguration.setBacklogQuotaDefaultLimitGB(1.6);
+ serviceConfiguration.setBacklogQuotaDefaultLimitBytes(123);
+
+ BacklogQuotaManager backlogQuotaManager = new BacklogQuotaManager(pulsarService);
+
+ assertEquals(backlogQuotaManager.getDefaultQuota().getLimitSize(), 1717986918);
+ }
+
+ @Test
+ public void testBacklogQuotaDefaultLimitBytes() {
+ serviceConfiguration.setBacklogQuotaDefaultLimitGB(0);
+ serviceConfiguration.setBacklogQuotaDefaultLimitBytes(123);
+
+ BacklogQuotaManager backlogQuotaManager = new BacklogQuotaManager(pulsarService);
+
+ assertEquals(backlogQuotaManager.getDefaultQuota().getLimitSize(), 123);
+ }
+
+ private void initializeServiceConfiguration() {
+ serviceConfiguration.setClusterName("test");
+ serviceConfiguration.setZookeeperServers("localhost:2181");
+ }
+
+ private PulsarService getPulsarService() {
+ PulsarService pulsarService = mock(PulsarService.class);
+ ConfigurationCacheService configurationCacheService = mock(ConfigurationCacheService.class);
+ when(pulsarService.getConfiguration()).thenReturn(serviceConfiguration);
+ when(pulsarService.getConfigurationCache()).thenReturn(configurationCacheService);
+ return pulsarService;
+ }
+}