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;
+    }
+}