You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by yu...@apache.org on 2021/04/23 10:46:27 UTC

[incubator-inlong] branch TUBEMQ-570 updated: [INLONG-599]Adjust WebParameterUtils.java's static functions (#458)

This is an automated email from the ASF dual-hosted git repository.

yuanbo pushed a commit to branch TUBEMQ-570
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git


The following commit(s) were added to refs/heads/TUBEMQ-570 by this push:
     new 7e7ca19  [INLONG-599]Adjust WebParameterUtils.java's static functions (#458)
7e7ca19 is described below

commit 7e7ca19f0c5644447cd1ea95c8a99394c7efeded
Author: gosonzhang <go...@apache.org>
AuthorDate: Fri Apr 23 18:46:22 2021 +0800

    [INLONG-599]Adjust WebParameterUtils.java's static functions (#458)
    
    Co-authored-by: gosonzhang <go...@tencent.com>
---
 .../server/broker/web/BrokerAdminServlet.java      |  242 ++---
 .../server/common/utils/WebParameterUtils.java     | 1118 ++++++--------------
 .../server/master/metamanage/MetaDataManager.java  |  156 ++-
 .../web/handler/WebAdminFlowRuleHandler.java       |  198 ++--
 .../master/web/handler/WebBrokerConfHandler.java   |  395 +++----
 .../web/handler/WebBrokerTopicConfHandler.java     |   58 +-
 .../web/handler/WebGroupConsumeCtrlHandler.java    |   57 +-
 .../master/web/handler/WebGroupResCtrlHandler.java |  198 ++--
 .../master/web/handler/WebMasterInfoHandler.java   |  125 ++-
 .../master/web/handler/WebOtherInfoHandler.java    |   94 +-
 .../master/web/handler/WebTopicCtrlHandler.java    |  109 +-
 .../master/web/handler/WebTopicDeployHandler.java  |  188 ++--
 12 files changed, 1250 insertions(+), 1688 deletions(-)

diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
index 7f999ff..0836a5c 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/broker/web/BrokerAdminServlet.java
@@ -128,7 +128,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         int index = 0;
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, false, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, false, null, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return;
         }
@@ -216,7 +216,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                                                     StringBuilder sBuilder) {
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return;
         }
@@ -276,25 +276,25 @@ public class BrokerAdminServlet extends AbstractWebHandler {
      * Get memory store status info.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      * @throws Exception
      */
     public void adminGetMemStoreStatisInfo(HttpServletRequest req,
-                                           StringBuilder sBuilder) {
+                                           StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.NEEDREFRESH, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.NEEDREFRESH, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         boolean requireRefresh = (boolean) result.retData1;
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"detail\":[");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"detail\":[");
         Map<String, ConcurrentHashMap<Integer, MessageStore>> messageTopicStores =
                 broker.getStoreManager().getMessageStores();
         int recordId = 0, index = 0;
@@ -305,10 +305,10 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             }
             String topicName = entry.getKey();
             if (recordId++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
             index = 0;
-            sBuilder.append("{\"topicName\":\"").append(topicName).append("\",\"storeStatisInfo\":[");
+            sBuffer.append("{\"topicName\":\"").append(topicName).append("\",\"storeStatisInfo\":[");
             ConcurrentHashMap<Integer, MessageStore> partStoreMap = entry.getValue();
             if (partStoreMap != null) {
                 for (Entry<Integer, MessageStore> subEntry : partStoreMap.entrySet()) {
@@ -317,62 +317,62 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                         continue;
                     }
                     if (index++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder.append("{\"storeId\":").append(subEntry.getKey())
+                    sBuffer.append("{\"storeId\":").append(subEntry.getKey())
                             .append(",\"memStatis\":").append(msgStore.getCurMemMsgSizeStatisInfo(requireRefresh))
                             .append(",\"fileStatis\":")
                             .append(msgStore.getCurFileMsgSizeStatisInfo(requireRefresh)).append("}");
                 }
             }
-            sBuilder.append("]}");
+            sBuffer.append("]}");
         }
-        sBuilder.append("],\"totalCount\":").append(recordId).append("}");
+        sBuffer.append("],\"totalCount\":").append(recordId).append("}");
     }
 
     /***
      * Manual set offset.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      * @throws Exception
      */
     public void adminManualSetCurrentOffSet(HttpServletRequest req,
-                                            StringBuilder sBuilder) {
+                                            StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.TOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.TOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String topicName = (String) result.retData1;
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.GROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.GROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String groupName = (String) result.retData1;
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MODIFYUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String modifyUser = (String) result.retData1;
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.PARTITIONID, true, -1, 0, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.PARTITIONID, true, -1, 0, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         int partitionId = (Integer) result.retData1;
         if (!WebParameterUtils.getLongParamValue(req,
-                WebFieldDef.MANUALOFFSET, true, -1, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MANUALOFFSET, true, -1, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         long manualOffset = (Long) result.retData1;
         List<String> topicList = broker.getMetadataManager().getTopics();
         if (!topicList.contains(topicName)) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the topicName configure!")
                     .append("\"}");
             return;
@@ -385,20 +385,20 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             //
         }
         if (store == null) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the store by topicName!")
                     .append("\"}");
             return;
         }
         if (manualOffset < store.getIndexMinOffset()) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: manualOffset lower than Current MinOffset:(")
                     .append(manualOffset).append("<").append(store.getIndexMinOffset())
                     .append(")\"}");
             return;
         }
         if (manualOffset > store.getIndexMaxOffset()) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: manualOffset bigger than Current MaxOffset:(")
                     .append(manualOffset).append(">").append(store.getIndexMaxOffset())
                     .append(")\"}");
@@ -409,11 +409,11 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                 offsetService.resetOffset(store, groupName,
                         topicName, partitionId, manualOffset, modifyUser);
         if (oldOffset < 0) {
-            sBuilder.append("{\"result\":false,\"errCode\":401,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":401,\"errMsg\":\"")
                     .append("Manual update current Offset failure!")
                     .append("\"}");
         } else {
-            sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"")
+            sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"")
                     .append("Manual update current Offset success!")
                     .append("\",\"oldOffset\":").append(oldOffset).append("}");
         }
@@ -423,84 +423,84 @@ public class BrokerAdminServlet extends AbstractWebHandler {
      * Query snapshot message set.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      * @throws Exception
      */
     public void adminQuerySnapshotMessageSet(HttpServletRequest req,
-                                             StringBuilder sBuilder) throws Exception {
+                                             StringBuilder sBuffer) throws Exception {
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.TOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.TOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String topicName = (String) result.retData1;
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.PARTITIONID, true, -1, 0, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.PARTITIONID, true, -1, 0, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         int partitionId = (Integer) result.retData1;
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.MSGCOUNT, false, 3, 3, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MSGCOUNT, false, 3, 3, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         int msgCount = (Integer) result.retData1;
         msgCount = Math.max(msgCount, 1);
         if (msgCount > 50) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Over max allowed msgCount value, allowed count is 50!")
                     .append("\"}");
             return;
         }
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.FILTERCONDS, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.FILTERCONDS, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> filterCondStrSet = (Set<String>) result.retData1;
         broker.getBrokerServiceServer()
-                .getMessageSnapshot(topicName, partitionId, msgCount, filterCondStrSet, sBuilder);
+                .getMessageSnapshot(topicName, partitionId, msgCount, filterCondStrSet, sBuffer);
     }
 
     /***
      * Query consumer group offset.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      * @throws Exception
      */
     public void adminQueryCurrentGroupOffSet(HttpServletRequest req,
-                                             StringBuilder sBuilder) {
+                                             StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.TOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.TOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String topicName = (String) result.retData1;
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.GROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.GROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String groupName = (String) result.retData1;
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.PARTITIONID, true, -1, 0, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.PARTITIONID, true, -1, 0, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         int partitionId = (Integer) result.retData1;
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.REQUIREREALOFFSET, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.REQUIREREALOFFSET, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         boolean requireRealOffset = (Boolean) result.retData1;
         List<String> topicList = broker.getMetadataManager().getTopics();
         if (!topicList.contains(topicName)) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the topicName configure!")
                     .append("\"}");
             return;
@@ -514,7 +514,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             //
         }
         if (store == null) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append("Invalid parameter: not found the store by topicName!")
                     .append("\"}");
             return;
@@ -524,7 +524,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         long maxDataOffset = store.getDataMaxOffset();
         long minPartOffset = store.getIndexMinOffset();
         long maxPartOffset = store.getIndexMaxOffset();
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"")
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"")
                 .append("OK!")
                 .append("\",\"tmpOffset\":").append(tmpOffset)
                 .append(",\"minOffset\":").append(minPartOffset)
@@ -543,15 +543,15 @@ public class BrokerAdminServlet extends AbstractWebHandler {
                 curRdDltDataOffset = curReadDataOffset < 0 ? -2 : maxDataOffset - curReadDataOffset;
             }
             if (curReadDataOffset < 0) {
-                sBuilder.append(",\"zkOffset\":").append(zkOffset)
+                sBuffer.append(",\"zkOffset\":").append(zkOffset)
                         .append(",\"curReadDataOffset\":-1,\"curRdDltDataOffset\":-1");
             } else {
-                sBuilder.append(",\"zkOffset\":").append(zkOffset)
+                sBuffer.append(",\"zkOffset\":").append(zkOffset)
                         .append(",\"curReadDataOffset\":").append(curReadDataOffset)
                         .append(",\"curRdDltDataOffset\":").append(curRdDltDataOffset);
             }
         }
-        sBuilder.append("}");
+        sBuffer.append("}");
     }
 
     public void adminQueryConsumerRegisterInfo(HttpServletRequest req,
@@ -586,7 +586,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         ProcessResult result = new ProcessResult();
         // get the topic set to be queried
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return;
         }
@@ -623,15 +623,15 @@ public class BrokerAdminServlet extends AbstractWebHandler {
      * Query all consumer groups booked on the Broker.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      */
     public void adminQueryBookedGroup(HttpServletRequest req,
-                                      StringBuilder sBuilder) {
+                                      StringBuilder sBuffer) {
         // get divide info
         ProcessResult result = new ProcessResult();
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.WITHDIVIDE, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.WITHDIVIDE, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         boolean withDivide = (boolean) result.retData1;
@@ -639,45 +639,45 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         int itemCnt = 0;
         int totalCnt = 0;
         OffsetService offsetService = broker.getOffsetManager();
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"dataSet\":[");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"Success!\",\"dataSet\":[");
         if (withDivide) {
             // query in-memory group name set
             Set<String> onlineGroups = offsetService.getInMemoryGroups();
-            sBuilder.append("{\"type\":\"in-cache\",\"groupName\":[");
+            sBuffer.append("{\"type\":\"in-cache\",\"groupName\":[");
             for (String group : onlineGroups) {
                 if (itemCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(group).append("\"");
+                sBuffer.append("\"").append(group).append("\"");
             }
-            sBuilder.append("],\"groupCount\":").append(itemCnt).append("}");
+            sBuffer.append("],\"groupCount\":").append(itemCnt).append("}");
             totalCnt++;
-            sBuilder.append(",");
+            sBuffer.append(",");
             // query in-zk group name set
             itemCnt = 0;
             Set<String> onZKGroup = offsetService.getUnusedGroupInfo();
-            sBuilder.append("{\"type\":\"in-zk\",\"groupName\":[");
+            sBuffer.append("{\"type\":\"in-zk\",\"groupName\":[");
             for (String group : onZKGroup) {
                 if (itemCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(group).append("\"");
+                sBuffer.append("\"").append(group).append("\"");
             }
-            sBuilder.append("],\"groupCount\":").append(itemCnt).append("}");
+            sBuffer.append("],\"groupCount\":").append(itemCnt).append("}");
             totalCnt++;
         } else {
             Set<String> allGroups = offsetService.getBookedGroups();
-            sBuilder.append("{\"type\":\"all\",\"groupName\":[");
+            sBuffer.append("{\"type\":\"all\",\"groupName\":[");
             for (String group : allGroups) {
                 if (itemCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(group).append("\"");
+                sBuffer.append("\"").append(group).append("\"");
             }
-            sBuilder.append("],\"groupCount\":").append(itemCnt).append("}");
+            sBuffer.append("],\"groupCount\":").append(itemCnt).append("}");
             totalCnt++;
         }
-        sBuilder.append("],\"dataCount\":").append(totalCnt).append("}");
+        sBuffer.append("],\"dataCount\":").append(totalCnt).append("}");
     }
 
     /***
@@ -691,14 +691,14 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         ProcessResult result = new ProcessResult();
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, false, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, false, null, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return;
         }
         Set<String> inGroupNameSet = (Set<String>) result.retData1;
         // get the topic set to be queried
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return;
         }
@@ -758,29 +758,29 @@ public class BrokerAdminServlet extends AbstractWebHandler {
      * Add or Modify consumer group offset.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      */
     public void adminSetGroupOffSet(HttpServletRequest req,
-                                    StringBuilder sBuilder) {
+                                    StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> groupNameSet = (Set<String>) result.retData1;
         // get set mode
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.MANUALSET, true, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MANUALSET, true, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         boolean manualSet = (Boolean) result.retData1;
         // get modify user
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MODIFYUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         List<Tuple3<String, Integer, Long>> resetOffsets;
@@ -789,14 +789,14 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             // get offset json info
             if (!WebParameterUtils.getJsonDictParamValue(req,
                     WebFieldDef.OFFSETJSON, true, null, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
                 return;
             }
             Map<String, Long> manOffsets =
                     (Map<String, Long>) result.retData1;
             // valid and transfer offset format
             if (!validManOffsetResetInfo(WebFieldDef.OFFSETJSON, manOffsets, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
                 return;
             }
             resetOffsets =
@@ -804,8 +804,8 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         } else {
             // get the topic set to be set
             if (!WebParameterUtils.getStringParamValue(req,
-                    WebFieldDef.COMPSTOPICNAME, true, null, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                    WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
                 return;
             }
             Set<String> topicSet = (Set<String>) result.retData1;
@@ -813,58 +813,58 @@ public class BrokerAdminServlet extends AbstractWebHandler {
             resetOffsets = buildOffsetResetInfo(topicSet);
         }
         broker.getOffsetManager().modifyGroupOffset(groupNameSet, resetOffsets, modifier);
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
     }
 
     /***
      * Clone consume group offset, clone A group's offset to other group.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      */
     public void adminCloneGroupOffSet(HttpServletRequest req,
-                                      StringBuilder sBuilder) {
+                                      StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         // get source consume group name
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.SRCGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.SRCGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String srcGroupName = (String) result.retData1;
         // get source consume group's topic set cloned to target group
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> srcTopicNameSet = (Set<String>) result.retData1;
         // valid topic and get topic's partitionIds
         if (!validAndGetTopicPartInfo(srcGroupName,
                 WebFieldDef.SRCGROUPNAME, srcTopicNameSet, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Map<String, Set<Integer>> topicPartMap =
                 (Map<String, Set<Integer>>) result.retData1;
         // get target consume group name
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.TGTCOMPSGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.TGTCOMPSGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> tgtGroupNameSet = (Set<String>) result.retData1;
         // get modify user
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MODIFYUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String modifier = (String) result.retData1;
         // check sourceGroup if existed
         Set<String> bookedGroups = broker.getOffsetManager().getBookedGroups();
         if (!bookedGroups.contains(srcGroupName)) {
-            WebParameterUtils.buildFailResult(sBuilder,
+            WebParameterUtils.buildFailResult(sBuffer,
                     new StringBuilder(512).append("Parameter ")
                             .append(WebFieldDef.SRCGROUPNAME.name).append(": ")
                             .append(srcGroupName)
@@ -878,49 +878,49 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         List<Tuple3<String, Integer, Long>> resetOffsets = buildOffsetResetInfo(srcGroupOffsets);
         broker.getOffsetManager().modifyGroupOffset(tgtGroupNameSet, resetOffsets, modifier);
         // builder return result
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
     }
 
     /***
      * Remove consume group offset.
      *
      * @param req
-     * @param sBuilder process result
+     * @param sBuffer process result
      */
     public void adminRemoveGroupOffSet(HttpServletRequest req,
-                                      StringBuilder sBuilder) {
+                                      StringBuilder sBuffer) {
         ProcessResult result = new ProcessResult();
         // get consume group name
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Set<String> groupNameSet = (Set<String>) result.retData1;
         // get modify user
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.MODIFYUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         final String modifier = (String) result.retData1;
         // get need removed offset's topic
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         // get target consume group name
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // get set mode
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.ONLYMEM, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+                WebFieldDef.ONLYMEM, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         boolean onlyMemory = (Boolean) result.retData1;
         if (!validAndGetGroupTopicInfo(groupNameSet, topicNameSet, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return;
         }
         Map<String, Map<String, Set<Integer>>> groupTopicPartMap =
@@ -928,7 +928,7 @@ public class BrokerAdminServlet extends AbstractWebHandler {
         broker.getOffsetManager().deleteGroupOffset(
                 onlyMemory, groupTopicPartMap, modifier);
         // builder return result
-        sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"}");
     }
 
     // build reset offset info
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
index d149cd0..ea3b153 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/common/utils/WebParameterUtils.java
@@ -120,11 +120,13 @@ public class WebParameterUtils {
         return strBuffer;
     }
 
-    public static boolean getAUDBaseInfo(HttpServletRequest req,
-                                         boolean isAdd, ProcessResult result) {
+    public static <T> boolean getAUDBaseInfo(T paramCntr, boolean isAdd,
+                                             BaseEntity defOpEntity,
+                                             StringBuilder sBuffer,
+                                             ProcessResult result) {
         // check and get data version id
-        if (!WebParameterUtils.getLongParamValue(req, WebFieldDef.DATAVERSIONID,
-                false, TBaseConstants.META_VALUE_UNDEFINED, result)) {
+        if (!WebParameterUtils.getLongParamValue(paramCntr, WebFieldDef.DATAVERSIONID,
+                false, TBaseConstants.META_VALUE_UNDEFINED, sBuffer, result)) {
             return result.isSuccess();
         }
         long dataVerId = (long) result.retData1;
@@ -133,69 +135,33 @@ public class WebParameterUtils {
         Date createDate = null;
         if (isAdd) {
             // check create user field
-            if (!WebParameterUtils.getStringParamValue(req,
-                    WebFieldDef.CREATEUSER, isAdd, null, result)) {
-                return result.isSuccess();
-            }
-            createUsr = (String) result.retData1;
-            // check and get create date
-            if (!WebParameterUtils.getDateParameter(req,
-                    WebFieldDef.CREATEDATE, false, new Date(), result)) {
-                return result.isSuccess();
-            }
-            createDate = (Date) result.retData1;
-        }
-        // check modify user field
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, !isAdd, createUsr, result)) {
-            return result.isSuccess();
-        }
-        String modifyUser = (String) result.retData1;
-        // check and get modify date
-        if (!WebParameterUtils.getDateParameter(req,
-                WebFieldDef.MODIFYDATE, false, createDate, result)) {
-            return result.isSuccess();
-        }
-        Date modifyDate = (Date) result.retData1;
-        result.setSuccResult(new BaseEntity(dataVerId,
-                createUsr, createDate, modifyUser, modifyDate));
-        return result.isSuccess();
-    }
-
-    public static boolean getAUDBaseInfo(Map<String, String> keyValueMap, boolean isAdd,
-                                         BaseEntity defOpInfoEntity, ProcessResult result) {
-        // check and get data version id
-        if (!WebParameterUtils.getLongParamValue(keyValueMap, WebFieldDef.DATAVERSIONID,
-                false, TBaseConstants.META_VALUE_UNDEFINED, result)) {
-            return result.isSuccess();
-        }
-        long dataVerId = (long) result.retData1;
-        // check and get createUser or modifyUser
-        String createUsr = null;
-        Date createDate = null;
-        if (isAdd) {
-            // check create user field
-            if (!WebParameterUtils.getStringParamValue(keyValueMap,
-                    WebFieldDef.CREATEUSER, false, defOpInfoEntity.getCreateUser(), result)) {
+            if (!WebParameterUtils.getStringParamValue(paramCntr, WebFieldDef.CREATEUSER,
+                    (defOpEntity == null && isAdd),
+                    (defOpEntity == null ? null : defOpEntity.getCreateUser()),
+                    sBuffer, result)) {
                 return result.isSuccess();
             }
             createUsr = (String) result.retData1;
             // check and get create date
-            if (!WebParameterUtils.getDateParameter(keyValueMap,
-                    WebFieldDef.CREATEDATE, false, defOpInfoEntity.getCreateDate(), result)) {
+            if (!WebParameterUtils.getDateParameter(paramCntr, WebFieldDef.CREATEDATE, false,
+                    (defOpEntity == null ? new Date() : defOpEntity.getCreateDate()),
+                    sBuffer, result)) {
                 return result.isSuccess();
             }
             createDate = (Date) result.retData1;
         }
         // check modify user field
-        if (!WebParameterUtils.getStringParamValue(keyValueMap,
-                WebFieldDef.MODIFYUSER, false, defOpInfoEntity.getModifyUser(), result)) {
+        if (!WebParameterUtils.getStringParamValue(paramCntr, WebFieldDef.MODIFYUSER,
+                (defOpEntity == null && !isAdd),
+                (defOpEntity == null ? createUsr : defOpEntity.getModifyUser()),
+                sBuffer, result)) {
             return result.isSuccess();
         }
         String modifyUser = (String) result.retData1;
         // check and get modify date
-        if (!WebParameterUtils.getDateParameter(keyValueMap,
-                WebFieldDef.MODIFYDATE, false, defOpInfoEntity.getModifyDate(), result)) {
+        if (!WebParameterUtils.getDateParameter(paramCntr, WebFieldDef.MODIFYDATE, false,
+                (defOpEntity == null ? createDate : defOpEntity.getModifyDate()),
+                sBuffer, result)) {
             return result.isSuccess();
         }
         Date modifyDate = (Date) result.retData1;
@@ -212,24 +178,23 @@ public class WebParameterUtils {
      * @param result     process result
      * @return process result
      */
-    public static boolean getQueriedOperateInfo(HttpServletRequest req,
-                                                BaseEntity qryEntity,
-                                                ProcessResult result) {
+    public static boolean getQueriedOperateInfo(HttpServletRequest req, BaseEntity qryEntity,
+                                                StringBuilder sBuffer, ProcessResult result) {
         // check and get data version id
         if (!WebParameterUtils.getLongParamValue(req, WebFieldDef.DATAVERSIONID,
-                false, TBaseConstants.META_VALUE_UNDEFINED, result)) {
+                false, TBaseConstants.META_VALUE_UNDEFINED, sBuffer, result)) {
             return result.isSuccess();
         }
         long dataVerId = (long) result.retData1;
         // check createUser user field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.CREATEUSER, false, null, result)) {
+                WebFieldDef.CREATEUSER, false, null, sBuffer, result)) {
             return result.isSuccess();
         }
         String createUser = (String) result.retData1;
         // check modify user field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.MODIFYUSER, false, null, result)) {
+                WebFieldDef.MODIFYUSER, false, null, sBuffer, result)) {
             return result.isSuccess();
         }
         String modifyUser = (String) result.retData1;
@@ -240,50 +205,38 @@ public class WebParameterUtils {
         return result.isSuccess();
     }
 
-    public static boolean getQryPriorityIdParameter(HttpServletRequest req,
-                                                    boolean required, int defValue,
-                                                    int minValue, ProcessResult result) {
-        if (!getIntParamValue(req, WebFieldDef.QRYPRIORITYID,
-                required, defValue, minValue, result)) {
+    public static <T> boolean getQryPriorityIdParameter(T paramCntr, boolean required,
+                                                        int defValue, int minValue,
+                                                        StringBuilder sBuffer,
+                                                        ProcessResult result) {
+        if (!getIntParamValue(paramCntr, WebFieldDef.QRYPRIORITYID,
+                required, defValue, minValue, sBuffer, result)) {
             return result.success;
         }
         int qryPriorityId = (int) result.retData1;
-        return checkQryPriorityIdValue(qryPriorityId, result);
-    }
-
-    public static boolean getQryPriorityIdParameter(Map<String, String> keyValueMap,
-                                                    boolean required, int defValue,
-                                                    int minValue, ProcessResult result) {
-        if (!getIntParamValue(keyValueMap, WebFieldDef.QRYPRIORITYID,
-                required, defValue, minValue, result)) {
-            return result.success;
-        }
-        int qryPriorityId = (int) result.retData1;
-        return checkQryPriorityIdValue(qryPriorityId, result);
-    }
-
-    private static boolean checkQryPriorityIdValue(int qryPriorityId,
-                                                   ProcessResult result) {
         if (qryPriorityId > 303 || qryPriorityId < 101) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" parameter: ").append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" value must be greater than or equal")
                     .append(" to 101 and less than or equal to 303!").toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         if (!allowedPriorityVal.contains(qryPriorityId % 100)) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" parameter: the units of ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" must in ").append(allowedPriorityVal).toString());
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" parameter: the units of ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" must in ")
+                    .append(allowedPriorityVal).toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         if (!allowedPriorityVal.contains(qryPriorityId / 100)) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" parameter: the hundreds of ").append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" must in ").append(allowedPriorityVal).toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         result.setSuccResult(qryPriorityId);
@@ -294,64 +247,46 @@ public class WebParameterUtils {
      * Decode the deletePolicy parameter value from an object value
      * the value must like {method},{digital}[s|m|h]
      *
-     * @param keyValueMap key-value map
+     * @param paramCntr   parameter container object
      * @param required   a boolean value represent whether the parameter is must required
      * @param defValue   a default value returned if failed to parse value from the given object
      * @param result     process result of parameter value
      * @return the process result
      */
-    public static boolean getDeletePolicyParameter(Map<String, String> keyValueMap,
-                                                   boolean required, String defValue,
-                                                   ProcessResult result) {
-        if (!WebParameterUtils.getStringParamValue(keyValueMap,
-                WebFieldDef.DELETEPOLICY, required, defValue, result)) {
+    public static <T> boolean getDeletePolicyParameter(T paramCntr, boolean required,
+                                                       String defValue, StringBuilder sBuffer,
+                                                       ProcessResult result) {
+        if (!WebParameterUtils.getStringParamValue(paramCntr,
+                WebFieldDef.DELETEPOLICY, required, defValue, sBuffer, result)) {
             return result.isSuccess();
         }
         String delPolicy = (String) result.retData1;
         if (TStringUtils.isBlank(delPolicy)) {
             return result.isSuccess();
         }
-        return validDeletePolicyValue(delPolicy, result);
-    }
-
-    public static boolean getDeletePolicyParameter(HttpServletRequest req,
-                                                   boolean required, String defValue,
-                                                   ProcessResult result) {
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.DELETEPOLICY, required, defValue, result)) {
-            return result.isSuccess();
-        }
-        String delPolicy = (String) result.retData1;
-        if (TStringUtils.isBlank(delPolicy)) {
-            return result.isSuccess();
-        }
-        return validDeletePolicyValue(delPolicy, result);
-    }
-
-    private static boolean validDeletePolicyValue(String delPolicy, ProcessResult result) {
         // check value format
         String[] tmpStrs = delPolicy.split(",");
         if (tmpStrs.length != 2) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512)
-                            .append("Value must include one and only one comma character,")
+                    sBuffer.append("Value must include one and only one comma character,")
                             .append(" the format of ").append(WebFieldDef.DELETEPOLICY.name())
                             .append(" must like {method},{digital}[m|s|h]").toString());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         if (TStringUtils.isBlank(tmpStrs[0])) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512)
-                            .append("Method value must not be blank")
-                            .append(" the format of ").append(WebFieldDef.DELETEPOLICY.name())
+                    sBuffer.append("Method value must not be blank, the format of ")
+                            .append(WebFieldDef.DELETEPOLICY.name())
                             .append(" must like {method},{digital}[m|s|h]").toString());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         if (!"delete".equalsIgnoreCase(tmpStrs[0].trim())) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512).append("Field ")
-                            .append(WebFieldDef.DELETEPOLICY.name())
+                    sBuffer.append("Field ").append(WebFieldDef.DELETEPOLICY.name())
                             .append(" only support delete method now!").toString());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         String validValStr = tmpStrs[1];
@@ -359,9 +294,9 @@ public class WebParameterUtils {
         if (Character.isLetter(timeUnit.charAt(0))) {
             if (!allowedDelUnits.contains(timeUnit)) {
                 result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                        new StringBuilder(512).append("Field ")
-                                .append(WebFieldDef.DELETEPOLICY.name())
+                        sBuffer.append("Field ").append(WebFieldDef.DELETEPOLICY.name())
                                 .append(" only support [s|m|h] unit!").toString());
+                sBuffer.delete(0, sBuffer.length());
                 return result.isSuccess();
             }
         }
@@ -378,28 +313,31 @@ public class WebParameterUtils {
             }
         } catch (Throwable e) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512).append("The value of field ")
+                    sBuffer.append("The value of field ")
                             .append(WebFieldDef.DELETEPOLICY.name())
                             .append("'s valid duration must digits!").toString());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         if (validDuration <= 0 || validDuration > DataStoreUtils.MAX_FILE_VALID_DURATION) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512).append("The value of field ")
+                    sBuffer.append("The value of field ")
                             .append(WebFieldDef.DELETEPOLICY.name())
                             .append(" must be greater than 0 and  less than or equal to")
                             .append(DataStoreUtils.MAX_FILE_VALID_DURATION)
                             .append(" seconds!").toString());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         if (Character.isLetter(timeUnit.charAt(0))) {
-            result.setSuccResult(new StringBuilder(512).append("delete,")
+            result.setSuccResult(sBuffer.append("delete,")
                     .append(validValStr.substring(0, validValStr.length() - 1))
                     .append(timeUnit).toString());
         } else {
-            result.setSuccResult(new StringBuilder(512).append("delete,")
+            result.setSuccResult(sBuffer.append("delete,")
                     .append(validValStr).append("h").toString());
         }
+        sBuffer.delete(0, sBuffer.length());
         return result.isSuccess();
     }
 
@@ -407,10 +345,12 @@ public class WebParameterUtils {
     public static boolean getTopicStatusParamValue(HttpServletRequest req,
                                                    boolean isRequired,
                                                    TopicStatus defVal,
+                                                   StringBuilder sBuffer,
                                                    ProcessResult result) {
         // get topicStatusId field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.TOPICSTATUSID,
-                isRequired, defVal.getCode(), TopicStatus.STATUS_TOPIC_OK.getCode(), result)) {
+                isRequired, defVal.getCode(), TopicStatus.STATUS_TOPIC_OK.getCode(),
+                sBuffer, result)) {
             return result.isSuccess();
         }
         int paramValue = (int) result.getRetData();
@@ -419,9 +359,10 @@ public class WebParameterUtils {
             result.setSuccResult(topicStatus);
         } catch (Throwable e) {
             result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
-                    new StringBuilder(512).append("The value of field ")
+                    sBuffer.append("The value of field ")
                             .append(WebFieldDef.TOPICSTATUSID.name())
                             .append(" invalid:").append(e.getMessage()).toString());
+            sBuffer.delete(0, sBuffer.length());
         }
         return result.isSuccess();
     }
@@ -429,269 +370,89 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value for TopicPropGroup class
      *
-     * @param req        Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param defVal     default value
      * @param result     process result of parameter value
      * @return process result
      */
-    public static boolean getTopicPropInfo(HttpServletRequest req,
-                                           TopicPropGroup defVal,
-                                           ProcessResult result) {
+    public static <T> boolean getTopicPropInfo(T paramCntr, TopicPropGroup defVal,
+                                               StringBuilder sBuffer, ProcessResult result) {
         TopicPropGroup newConf = new TopicPropGroup();
         // get numTopicStores parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.NUMTOPICSTORES,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_STOREBLOCK_NUM_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.NUMTOPICSTORES, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getNumTopicStores()),
+                TServerConstants.TOPIC_STOREBLOCK_NUM_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int numTopicStores = (int) result.retData1;
-        if (numTopicStores == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            numTopicStores = defVal.getNumTopicStores();
-        }
-        newConf.setNumTopicStores(numTopicStores);
+        newConf.setNumTopicStores((int) result.retData1);
         // get numPartitions parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.NUMPARTITIONS,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_PARTITION_NUM_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.NUMPARTITIONS, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getNumPartitions()),
+                TServerConstants.TOPIC_PARTITION_NUM_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int numPartitions = (int) result.retData1;
-        if (numPartitions == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            numPartitions = defVal.getNumPartitions();
-        }
-        newConf.setNumPartitions(numPartitions);
+        newConf.setNumPartitions((int) result.retData1);
         // get unflushThreshold parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.UNFLUSHTHRESHOLD,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHTHRESHOLD_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHTHRESHOLD, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushThreshold()),
+                TServerConstants.TOPIC_DSK_UNFLUSHTHRESHOLD_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int unflushThreshold = (int) result.retData1;
-        if (unflushThreshold == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushThreshold = defVal.getUnflushThreshold();
-        }
-        newConf.setUnflushThreshold(unflushThreshold);
+        newConf.setUnflushThreshold((int) result.retData1);
         // get unflushInterval parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.UNFLUSHINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHINTERVAL_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHINTERVAL, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushInterval()),
+                TServerConstants.TOPIC_DSK_UNFLUSHINTERVAL_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int unflushInterval = (int) result.retData1;
-        if (unflushInterval == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushInterval = defVal.getUnflushInterval();
-        }
-        newConf.setUnflushInterval(unflushInterval);
+        newConf.setUnflushInterval((int) result.retData1);
         // get unflushDataHold parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.UNFLUSHINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHDATAHOLD_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHINTERVAL, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushDataHold()),
+                TServerConstants.TOPIC_DSK_UNFLUSHDATAHOLD_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int unflushDataHold = (int) result.retData1;
-        if (unflushDataHold == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushDataHold = defVal.getUnflushDataHold();
-        }
-        newConf.setUnflushDataHold(unflushDataHold);
+        newConf.setUnflushDataHold((int) result.retData1);
         // get memCacheMsgSizeInMB parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.MCACHESIZEINMB,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.MCACHESIZEINMB, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheMsgSizeInMB()),
                 TServerConstants.TOPIC_CACHESIZE_MB_MIN,
-                TServerConstants.TOPIC_CACHESIZE_MB_MAX, result)) {
+                TServerConstants.TOPIC_CACHESIZE_MB_MAX, sBuffer, result)) {
             return result.isSuccess();
         }
-        int cacheMsgSizeInMB = (int) result.retData1;
-        if (cacheMsgSizeInMB == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheMsgSizeInMB = defVal.getMemCacheMsgSizeInMB();
-        }
-        newConf.setMemCacheMsgSizeInMB(cacheMsgSizeInMB);
+        newConf.setMemCacheMsgSizeInMB((int) result.retData1);
         // get memCacheFlushIntvl parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.UNFMCACHEINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_CACHEINTVL_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFMCACHEINTERVAL, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheFlushIntvl()),
+                TServerConstants.TOPIC_CACHEINTVL_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int cacheFlushIntvl = (int) result.retData1;
-        if (cacheFlushIntvl == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheFlushIntvl = defVal.getMemCacheFlushIntvl();
-        }
-        newConf.setMemCacheFlushIntvl(cacheFlushIntvl);
+        newConf.setMemCacheFlushIntvl((int) result.retData1);
         // get memCacheMsgCntInK parameter value
-        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.UNFMCACHECNTINK,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_CACHECNT_INK_MIN, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFMCACHECNTINK, false,
+                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheMsgCntInK()),
+                TServerConstants.TOPIC_CACHECNT_INK_MIN, sBuffer, result)) {
             return result.isSuccess();
         }
-        int cacheMsgCntInK = (int) result.retData1;
-        if (cacheMsgCntInK == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheMsgCntInK = defVal.getMemCacheMsgCntInK();
-        }
-        newConf.setMemCacheMsgCntInK(cacheMsgCntInK);
+        newConf.setMemCacheMsgCntInK((int) result.retData1);
         // get deletePolicy parameter value
-        if (!WebParameterUtils.getDeletePolicyParameter(req,
-                false, null, result)) {
+        if (!WebParameterUtils.getDeletePolicyParameter(paramCntr, false,
+                (defVal == null ? null : defVal.getDeletePolicy()), sBuffer, result)) {
             return result.isSuccess();
         }
-        String deletePolicy = (String) result.retData1;
-        if (deletePolicy == null && defVal != null) {
-            deletePolicy = defVal.getDeletePolicy();
-        }
-        newConf.setDeletePolicy(deletePolicy);
+        newConf.setDeletePolicy((String) result.retData1);
         // get acceptPublish parameter value
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.ACCEPTPUBLISH, false, null, result)) {
+        if (!WebParameterUtils.getBooleanParamValue(paramCntr, WebFieldDef.ACCEPTPUBLISH, false,
+                (defVal == null ? null : defVal.getAcceptPublish()), sBuffer, result)) {
             return result.isSuccess();
         }
-        Boolean acceptPublish = (Boolean) result.retData1;
-        if (acceptPublish == null && defVal != null) {
-            acceptPublish = defVal.getAcceptPublish();
-        }
-        newConf.setAcceptPublish(acceptPublish);
+        newConf.setAcceptPublish((Boolean) result.retData1);
         // get acceptSubscribe parameter value
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.ACCEPTSUBSCRIBE, false, null, result)) {
+        if (!WebParameterUtils.getBooleanParamValue(paramCntr, WebFieldDef.ACCEPTSUBSCRIBE, false,
+                (defVal == null ? null : defVal.getAcceptSubscribe()), sBuffer, result)) {
             return result.isSuccess();
         }
-        Boolean acceptSubscribe = (Boolean) result.retData1;
-        if (acceptSubscribe == null && defVal != null) {
-            acceptSubscribe = defVal.getAcceptSubscribe();
-        }
-        newConf.setAcceptSubscribe(acceptSubscribe);
-        result.setSuccResult(newConf);
-        return result.isSuccess();
-    }
-
-    /**
-     * Parse the parameter value for TopicPropGroup class
-     *
-     * @param keyValueMap parameter key-value map
-     * @param defVal      default value
-     * @param result      process result of parameter value
-     * @return process    result
-     */
-    public static boolean getTopicPropInfo(Map<String, String> keyValueMap,
-                                           TopicPropGroup defVal,
-                                           ProcessResult result) {
-        TopicPropGroup newConf = new TopicPropGroup();
-        // get numTopicStores parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.NUMTOPICSTORES,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_STOREBLOCK_NUM_MIN, result)) {
-            return result.isSuccess();
-        }
-        int numTopicStores = (int) result.retData1;
-        if (numTopicStores == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            numTopicStores = defVal.getNumTopicStores();
-        }
-        newConf.setNumTopicStores(numTopicStores);
-        // get numPartitions parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.NUMPARTITIONS,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_PARTITION_NUM_MIN, result)) {
-            return result.isSuccess();
-        }
-        int numPartitions = (int) result.retData1;
-        if (numPartitions == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            numPartitions = defVal.getNumPartitions();
-        }
-        newConf.setNumPartitions(numPartitions);
-        // get unflushThreshold parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.UNFLUSHTHRESHOLD,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHTHRESHOLD_MIN, result)) {
-            return result.isSuccess();
-        }
-        int unflushThreshold = (int) result.retData1;
-        if (unflushThreshold == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushThreshold = defVal.getUnflushThreshold();
-        }
-        newConf.setUnflushThreshold(unflushThreshold);
-        // get unflushInterval parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.UNFLUSHINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHINTERVAL_MIN, result)) {
-            return result.isSuccess();
-        }
-        int unflushInterval = (int) result.retData1;
-        if (unflushInterval == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushInterval = defVal.getUnflushInterval();
-        }
-        newConf.setUnflushInterval(unflushInterval);
-        // get unflushDataHold parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.UNFLUSHINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_DSK_UNFLUSHDATAHOLD_MIN, result)) {
-            return result.isSuccess();
-        }
-        int unflushDataHold = (int) result.retData1;
-        if (unflushDataHold == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            unflushDataHold = defVal.getUnflushDataHold();
-        }
-        newConf.setUnflushDataHold(unflushDataHold);
-        // get memCacheMsgSizeInMB parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.MCACHESIZEINMB,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_CACHESIZE_MB_MIN,
-                TServerConstants.TOPIC_CACHESIZE_MB_MAX, result)) {
-            return result.isSuccess();
-        }
-        int cacheMsgSizeInMB = (int) result.retData1;
-        if (cacheMsgSizeInMB == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheMsgSizeInMB = defVal.getMemCacheMsgSizeInMB();
-        }
-        newConf.setMemCacheMsgSizeInMB(cacheMsgSizeInMB);
-        // get memCacheFlushIntvl parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.UNFMCACHEINTERVAL,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_CACHEINTVL_MIN, result)) {
-            return result.isSuccess();
-        }
-        int cacheFlushIntvl = (int) result.retData1;
-        if (cacheFlushIntvl == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheFlushIntvl = defVal.getMemCacheFlushIntvl();
-        }
-        newConf.setMemCacheFlushIntvl(cacheFlushIntvl);
-        // get memCacheMsgCntInK parameter value
-        if (!WebParameterUtils.getIntParamValue(keyValueMap, WebFieldDef.UNFMCACHECNTINK,
-                false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.TOPIC_CACHECNT_INK_MIN, result)) {
-            return result.isSuccess();
-        }
-        int cacheMsgCntInK = (int) result.retData1;
-        if (cacheMsgCntInK == TBaseConstants.META_VALUE_UNDEFINED && defVal != null) {
-            cacheMsgCntInK = defVal.getMemCacheMsgCntInK();
-        }
-        newConf.setMemCacheMsgCntInK(cacheMsgCntInK);
-        // get deletePolicy parameter value
-        if (!WebParameterUtils.getDeletePolicyParameter(keyValueMap,
-                false, null, result)) {
-            return result.isSuccess();
-        }
-        String deletePolicy = (String) result.retData1;
-        if (deletePolicy == null && defVal != null) {
-            deletePolicy = defVal.getDeletePolicy();
-        }
-        newConf.setDeletePolicy(deletePolicy);
-        // get acceptPublish parameter value
-        if (!WebParameterUtils.getBooleanParamValue(keyValueMap,
-                WebFieldDef.ACCEPTPUBLISH, false, null, result)) {
-            return result.isSuccess();
-        }
-        Boolean acceptPublish = (Boolean) result.retData1;
-        if (acceptPublish == null && defVal != null) {
-            acceptPublish = defVal.getAcceptPublish();
-        }
-        newConf.setAcceptPublish(acceptPublish);
-        // get acceptSubscribe parameter value
-        if (!WebParameterUtils.getBooleanParamValue(keyValueMap,
-                WebFieldDef.ACCEPTSUBSCRIBE, false, null, result)) {
-            return result.isSuccess();
-        }
-        Boolean acceptSubscribe = (Boolean) result.retData1;
-        if (acceptSubscribe == null && defVal != null) {
-            acceptSubscribe = defVal.getAcceptSubscribe();
-        }
-        newConf.setAcceptSubscribe(acceptSubscribe);
+        newConf.setAcceptSubscribe((Boolean) result.retData1);
         result.setSuccResult(newConf);
         return result.isSuccess();
     }
@@ -887,44 +648,18 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value from an object value to a long value
      *
-     * @param req        Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param fieldDef   the parameter field definition
      * @param required   a boolean value represent whether the parameter is must required
      * @param defValue   a default value returned if the field not exist
      * @param result     process result of parameter value
      * @return process result
      */
-    public static boolean getLongParamValue(HttpServletRequest req,
-                                            WebFieldDef fieldDef,
-                                            boolean required,
-                                            long defValue,
-                                            ProcessResult result) {
-        if (!getStringParamValue(req, fieldDef, required, null, result)) {
-            return result.success;
-        }
-        String paramValue = (String) result.retData1;
-        if (paramValue == null) {
-            result.setSuccResult(defValue);
-            return result.success;
-        }
-        try {
-            long paramIntVal = Long.parseLong(paramValue);
-            result.setSuccResult(paramIntVal);
-        } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parameter ").append(fieldDef.name)
-                    .append(" parse error: ").append(e.getMessage()).toString());
-        }
-        return result.success;
-    }
-
-    public static boolean getLongParamValue(Map<String, String> keyValueMap,
-                                            WebFieldDef fieldDef,
-                                            boolean required,
-                                            long defValue,
-                                            ProcessResult result) {
-        if (!getStringParamValue(keyValueMap,
-                fieldDef, required, null, result)) {
+    public static <T> boolean getLongParamValue(T paramCntr, WebFieldDef fieldDef,
+                                                boolean required, long defValue,
+                                                StringBuilder sBuffer, ProcessResult result) {
+        if (!getStringParamValue(paramCntr, fieldDef,
+                required, null, sBuffer, result)) {
             return result.success;
         }
         String paramValue = (String) result.retData1;
@@ -936,9 +671,9 @@ public class WebParameterUtils {
             long paramIntVal = Long.parseLong(paramValue);
             result.setSuccResult(paramIntVal);
         } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parameter ").append(fieldDef.name)
+            result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                     .append(" parse error: ").append(e.getMessage()).toString());
+            sBuffer.delete(0, sBuffer.length());
         }
         return result.success;
     }
@@ -946,27 +681,26 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value from an object value to a integer value
      *
-     * @param req        Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param fieldDef   the parameter field definition
      * @param required   a boolean value represent whether the parameter is must required
      * @param result     process result of parameter value
      * @return process result
      */
-    public static boolean getIntParamValue(HttpServletRequest req,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           ProcessResult result) {
-        return getIntParamValue(req, fieldDef, required,
+    public static <T> boolean getIntParamValue(T paramCntr, WebFieldDef fieldDef,
+                                               boolean required, StringBuilder sBuffer,
+                                               ProcessResult result) {
+        return getIntParamValue(paramCntr, fieldDef, required,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
-                result);
+                sBuffer, result);
     }
 
     /**
      * Parse the parameter value from an object value to a integer value
      *
-     * @param req        Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param fieldDef   the parameter field definition
      * @param required   a boolean value represent whether the parameter is must required
      * @param defValue   a default value returned if the field not exist
@@ -974,41 +708,19 @@ public class WebParameterUtils {
      * @param result     process result of parameter value
      * @return process result
      */
-    public static boolean getIntParamValue(HttpServletRequest req,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           int defValue,
-                                           int minValue,
-                                           ProcessResult result) {
-        return getIntParamValue(req, fieldDef, required, true, defValue,
-                true, minValue, false, TBaseConstants.META_VALUE_UNDEFINED, result);
+    public static <T> boolean getIntParamValue(T paramCntr, WebFieldDef fieldDef,
+                                               boolean required, int defValue, int minValue,
+                                               StringBuilder sBuffer, ProcessResult result) {
+        return getIntParamValue(paramCntr, fieldDef, required,
+                true, defValue, true, minValue,
+                false, TBaseConstants.META_VALUE_UNDEFINED,
+                sBuffer, result);
     }
 
     /**
      * Parse the parameter value from an object value to a integer value
      *
-     * @param keyValueMap  parameter key value map
-     * @param fieldDef   the parameter field definition
-     * @param required   a boolean value represent whether the parameter is must required
-     * @param defValue   a default value returned if the field not exist
-     * @param minValue   min value required
-     * @param result     process result of parameter value
-     * @return process result
-     */
-    public static boolean getIntParamValue(Map<String, String> keyValueMap,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           int defValue,
-                                           int minValue,
-                                           ProcessResult result) {
-        return getIntParamValue(keyValueMap, fieldDef, required, true, defValue,
-                true, minValue, false, TBaseConstants.META_VALUE_UNDEFINED, result);
-    }
-
-    /**
-     * Parse the parameter value from an object value to a integer value
-     *
-     * @param req        Http Servlet Request
+     * @param paramCntr  parameter container object
      * @param fieldDef   the parameter field definition
      * @param required   a boolean value represent whether the parameter is must required
      * @param defValue   a default value returned if the field not exist
@@ -1017,73 +729,27 @@ public class WebParameterUtils {
      * @param result     process result of parameter value
      * @return process result
      */
-    public static boolean getIntParamValue(HttpServletRequest req,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           int defValue,
-                                           int minValue,
-                                           int maxValue,
-                                           ProcessResult result) {
-        return getIntParamValue(req, fieldDef, required, true, defValue,
-                true, minValue, true, maxValue, result);
-    }
-
-    public static boolean getIntParamValue(Map<String, String> keyValueMap,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           int defValue,
-                                           int minValue,
-                                           int maxValue,
-                                           ProcessResult result) {
-        return getIntParamValue(keyValueMap, fieldDef, required, true, defValue,
-                true, minValue, true, maxValue, result);
-    }
-
-    private static boolean getIntParamValue(HttpServletRequest req,
-                                            WebFieldDef fieldDef,
-                                            boolean required,
-                                            boolean hasDefVal,
-                                            int defValue,
-                                            boolean hasMinVal,
-                                            int minValue,
-                                            boolean hasMaxVal,
-                                            int maxValue,
-                                            ProcessResult result) {
-        if (!getStringParamValue(req, fieldDef, required, null, result)) {
-            return result.success;
-        }
-        return checkIntParamValue(fieldDef, hasDefVal, defValue,
-                hasMinVal, minValue, hasMaxVal, maxValue, result);
-    }
-
-    private static boolean getIntParamValue(Map<String, String> keyValueMap,
-                                            WebFieldDef fieldDef,
-                                            boolean required,
-                                            boolean hasDefVal,
-                                            int defValue,
-                                            boolean hasMinVal,
-                                            int minValue,
-                                            boolean hasMaxVal,
-                                            int maxValue,
-                                            ProcessResult result) {
-        if (!getStringParamValue(keyValueMap, fieldDef, required, null, result)) {
+    public static <T> boolean getIntParamValue(T paramCntr, WebFieldDef fieldDef,
+                                               boolean required, int defValue,
+                                               int minValue, int maxValue,
+                                               StringBuilder sBuffer,
+                                               ProcessResult result) {
+        return getIntParamValue(paramCntr, fieldDef, required, true,
+                defValue, true, minValue, true, maxValue, sBuffer, result);
+    }
+
+    private static <T> boolean getIntParamValue(T paramCntr,
+                                                WebFieldDef fieldDef, boolean required,
+                                                boolean hasDefVal, int defValue,
+                                                boolean hasMinVal, int minValue,
+                                                boolean hasMaxVal, int maxValue,
+                                                StringBuilder sBuffer, ProcessResult result) {
+        if (!getStringParamValue(paramCntr, fieldDef,
+                required, null, sBuffer, result)) {
             return result.success;
         }
-        return checkIntParamValue(fieldDef, hasDefVal, defValue,
-                hasMinVal, minValue, hasMaxVal, maxValue, result);
-    }
-
-    private static boolean checkIntParamValue(WebFieldDef fieldDef,
-                                              boolean hasDefVal,
-                                              int defValue,
-                                              boolean hasMinVal,
-                                              int minValue,
-                                              boolean hasMaxVal,
-                                              int maxValue,
-                                              ProcessResult result) {
-
         if (fieldDef.isCompFieldType()) {
-            Set<Integer> tgtValueSet = new HashSet<Integer>();
+            Set<Integer> tgtValueSet = new HashSet<>();
             Set<String> valItemSet = (Set<String>) result.retData1;
             if (valItemSet.isEmpty()) {
                 if (hasDefVal) {
@@ -1094,7 +760,7 @@ public class WebParameterUtils {
             }
             for (String itemVal : valItemSet) {
                 if (!checkIntValueNorms(fieldDef, itemVal,
-                        hasMinVal, minValue, hasMaxVal, maxValue, result)) {
+                        hasMinVal, minValue, hasMaxVal, maxValue, sBuffer, result)) {
                     return result.success;
                 }
                 tgtValueSet.add((Integer) result.retData1);
@@ -1109,43 +775,7 @@ public class WebParameterUtils {
                 return result.success;
             }
             checkIntValueNorms(fieldDef, paramValue,
-                    hasMinVal, minValue, hasMaxVal, maxValue, result);
-        }
-        return result.success;
-    }
-
-    /**
-     * Parse the parameter value from an object value to a boolean value
-     *
-     * @param req         Http Servlet Request
-     * @param fieldDef    the parameter field definition
-     * @param required    a boolean value represent whether the parameter is must required
-     * @param defValue    a default value returned if the field not exist
-     * @param result      process result
-     * @return valid result for the parameter value
-     */
-    public static boolean getBooleanParamValue(HttpServletRequest req,
-                                               WebFieldDef fieldDef,
-                                               boolean required,
-                                               Boolean defValue,
-                                               ProcessResult result) {
-        if (!getStringParamValue(req, fieldDef, required, null, result)) {
-            return result.success;
-        }
-        String paramValue = (String) result.retData1;
-        if (paramValue == null) {
-            result.setSuccResult(defValue);
-            return result.success;
-        }
-        if (paramValue.equalsIgnoreCase("true")
-                || paramValue.equalsIgnoreCase("false")) {
-            result.setSuccResult(Boolean.parseBoolean(paramValue));
-        } else {
-            try {
-                result.setSuccResult(!(Long.parseLong(paramValue) == 0));
-            } catch (Throwable e) {
-                result.setSuccResult(defValue);
-            }
+                    hasMinVal, minValue, hasMaxVal, maxValue, sBuffer, result);
         }
         return result.success;
     }
@@ -1153,20 +783,19 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value from an object value to a boolean value
      *
-     * @param keyValueMap key value map
+     * @param paramCntr   parameter container object
      * @param fieldDef    the parameter field definition
      * @param required    a boolean value represent whether the parameter is must required
      * @param defValue    a default value returned if the field not exist
      * @param result      process result
      * @return valid result for the parameter value
      */
-    public static boolean getBooleanParamValue(Map<String, String> keyValueMap,
-                                               WebFieldDef fieldDef,
-                                               boolean required,
-                                               Boolean defValue,
-                                               ProcessResult result) {
-        if (!getStringParamValue(keyValueMap,
-                fieldDef, required, null, result)) {
+    public static <T> boolean getBooleanParamValue(T paramCntr, WebFieldDef fieldDef,
+                                                   boolean required, Boolean defValue,
+                                                   StringBuilder sBuffer,
+                                                   ProcessResult result) {
+        if (!getStringParamValue(paramCntr, fieldDef,
+                required, null, sBuffer, result)) {
             return result.success;
         }
         String paramValue = (String) result.retData1;
@@ -1190,49 +819,37 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value from an object value
      *
-     * @param keyValueMap  Http Servlet Request
+     * @param paramCntr    parameter container object
      * @param fieldDef     the parameter field definition
      * @param required     a boolean value represent whether the parameter is must required
      * @param defValue     a default value returned if the field not exist
-     * @param result      process result
-     * @return valid result for the parameter value
-     */
-    public static boolean getStringParamValue(Map<String, String> keyValueMap,
-                                              WebFieldDef fieldDef,
-                                              boolean required,
-                                              String defValue,
-                                              ProcessResult result) {
-        // get parameter value
-        String paramValue = keyValueMap.get(fieldDef.name);
-        if (paramValue == null) {
-            paramValue = keyValueMap.get(fieldDef.shortName);
-        }
-        return checkStrParamValue(paramValue,
-                fieldDef, required, defValue, result);
-    }
-
-    /**
-     * Parse the parameter value from an HttpServletRequest
-     *
-     * @param req         Http Servlet Request
-     * @param fieldDef    the parameter field definition
-     * @param required     a boolean value represent whether the parameter is must required
-     * @param defValue     a default value returned if the field not exist
-     * @param result      process result
+     * @param sBuffer      string buffer
+     * @param result       process result
      * @return valid result for the parameter value
      */
-    public static boolean getStringParamValue(HttpServletRequest req,
-                                              WebFieldDef fieldDef,
-                                              boolean required,
-                                              String defValue,
-                                              ProcessResult result) {
+    public static <T> boolean getStringParamValue(T paramCntr, WebFieldDef fieldDef,
+                                                  boolean required, String defValue,
+                                                  StringBuilder sBuffer, ProcessResult result) {
+        String paramValue;
         // get parameter value
-        String paramValue = req.getParameter(fieldDef.name);
-        if (paramValue == null) {
-            paramValue = req.getParameter(fieldDef.shortName);
+        if (paramCntr instanceof Map) {
+            Map<String, String> keyValueMap =
+                    (Map<String, String>) paramCntr;
+            paramValue = keyValueMap.get(fieldDef.name);
+            if (paramValue == null) {
+                paramValue = keyValueMap.get(fieldDef.shortName);
+            }
+        } else if (paramCntr instanceof HttpServletRequest) {
+            HttpServletRequest req = (HttpServletRequest) paramCntr;
+            paramValue = req.getParameter(fieldDef.name);
+            if (paramValue == null) {
+                paramValue = req.getParameter(fieldDef.shortName);
+            }
+        } else {
+            throw new IllegalArgumentException("Unknown parameter type!");
         }
         return checkStrParamValue(paramValue,
-                fieldDef, required, defValue, result);
+                fieldDef, required, defValue, sBuffer, result);
     }
 
     /**
@@ -1245,11 +862,9 @@ public class WebParameterUtils {
      * @param result      process result
      * @return valid result for the parameter value
      */
-    private static boolean checkStrParamValue(String paramValue,
-                                              WebFieldDef fieldDef,
-                                              boolean required,
-                                              String defValue,
-                                              ProcessResult result) {
+    private static boolean checkStrParamValue(String paramValue, WebFieldDef fieldDef,
+                                              boolean required, String defValue,
+                                              StringBuilder sBuffer, ProcessResult result) {
         if (TStringUtils.isNotBlank(paramValue)) {
             // Cleanup value extra characters
             paramValue = escDoubleQuotes(paramValue.trim());
@@ -1257,9 +872,9 @@ public class WebParameterUtils {
         // Check if the parameter exists
         if (TStringUtils.isBlank(paramValue)) {
             if (required) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("Parameter ").append(fieldDef.name)
+                result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                         .append(" is missing or value is null or blank!").toString());
+                sBuffer.delete(0, sBuffer.length());
             } else {
                 procStringDefValue(fieldDef.isCompFieldType(), defValue, result);
             }
@@ -1274,7 +889,7 @@ public class WebParameterUtils {
                 if (TStringUtils.isBlank(strParamValueItem)) {
                     continue;
                 }
-                if (!checkStrValueNorms(fieldDef, strParamValueItem, result)) {
+                if (!checkStrValueNorms(fieldDef, strParamValueItem, sBuffer, result)) {
                     return result.success;
                 }
                 valItemSet.add((String) result.retData1);
@@ -1282,9 +897,9 @@ public class WebParameterUtils {
             // check if is empty result
             if (valItemSet.isEmpty()) {
                 if (required) {
-                    result.setFailResult(new StringBuilder(512)
-                            .append("Parameter ").append(fieldDef.name)
+                    result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                             .append(" is missing or value is null or blank!").toString());
+                    sBuffer.delete(0, sBuffer.length());
                 } else {
                     procStringDefValue(fieldDef.isCompFieldType(), defValue, result);
                 }
@@ -1293,16 +908,16 @@ public class WebParameterUtils {
             // check max item count
             if (fieldDef.itemMaxCnt != TBaseConstants.META_VALUE_UNDEFINED) {
                 if (valItemSet.size() > fieldDef.itemMaxCnt) {
-                    result.setFailResult(new StringBuilder(512)
-                            .append("Parameter ").append(fieldDef.name)
+                    result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                             .append("'s item count over max allowed count (")
                             .append(fieldDef.itemMaxCnt).append(")!").toString());
+                    sBuffer.delete(0, sBuffer.length());
                 }
             }
             valItemSet.comparator();
             result.setSuccResult(valItemSet);
         } else {
-            if (!checkStrValueNorms(fieldDef, paramValue, result)) {
+            if (!checkStrValueNorms(fieldDef, paramValue, sBuffer, result)) {
                 return result.success;
             }
             result.setSuccResult(paramValue);
@@ -1321,46 +936,13 @@ public class WebParameterUtils {
      * @return process result
      */
     public static boolean getAndValidTopicNameInfo(HttpServletRequest req,
-                                                   BrokerConfManager confManager,
-                                                   boolean required,
-                                                   String defValue,
-                                                   ProcessResult result) {
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, required, defValue, result)) {
-            return result.success;
-        }
-        Set<String> topicNameSet = (Set<String>) result.retData1;
-        Set<String> existedTopicSet =
-                confManager.getTotalConfiguredTopicNames();
-        for (String topic : topicNameSet) {
-            if (!existedTopicSet.contains(topic)) {
-                result.setFailResult(new StringBuilder(512)
-                        .append(WebFieldDef.COMPSTOPICNAME.name)
-                        .append(" value ").append(topic)
-                        .append(" is not configure, please configure first!").toString());
-                break;
-            }
-        }
-        return result.success;
-    }
-
-    /**
-     * Get and valid topicName value
-     *
-     * @param req        Http Servlet Request
-     * @param confManager  configure manager
-     * @param required   a boolean value represent whether the parameter is must required
-     * @param defValue   a default value returned if the field not exist
-     * @param result     process result of parameter value
-     * @return process result
-     */
-    public static boolean getAndValidTopicNameInfo(HttpServletRequest req,
                                                    MetaDataManager confManager,
                                                    boolean required,
                                                    String defValue,
+                                                   StringBuilder sBuffer,
                                                    ProcessResult result) {
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, required, defValue, result)) {
+                WebFieldDef.COMPSTOPICNAME, required, defValue, sBuffer, result)) {
             return result.success;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
@@ -1368,10 +950,10 @@ public class WebParameterUtils {
                 confManager.getTotalConfiguredTopicNames();
         for (String topic : topicNameSet) {
             if (!existedTopicSet.contains(topic)) {
-                result.setFailResult(new StringBuilder(512)
-                        .append(WebFieldDef.COMPSTOPICNAME.name)
+                result.setFailResult(sBuffer.append(WebFieldDef.COMPSTOPICNAME.name)
                         .append(" value ").append(topic)
                         .append(" is not configure, please configure first!").toString());
+                sBuffer.delete(0, sBuffer.length());
                 break;
             }
         }
@@ -1381,129 +963,70 @@ public class WebParameterUtils {
     /**
      * check the filter conditions and get them in a String
      *
-     * @param req        Http Servlet Request
-     * @param required   denote whether it translate blank condition
-     * @param transBlank   whether to translate condition item
-     * @param result     process result of parameter value
-     * @return process result
-     */
-    public static boolean getFilterCondString(HttpServletRequest req,
-                                              boolean required,
-                                              boolean transBlank,
-                                              ProcessResult result) {
-        if (!getFilterCondSet(req, required, false, result)) {
-            return result.success;
-        }
-        return transCondItemsToStr(transBlank, result);
-    }
-
-    /**
-     * check the filter conditions and get them in a String
-     *
-     * @param keyValueMap parameter key value map
-     * @param required   denote whether it translate blank condition
-     * @param transBlank   whether to translate condition item
-     * @param result     process result of parameter value
-     * @return process result
-     */
-    public static boolean getFilterCondString(Map<String, String> keyValueMap,
-                                              boolean required,
-                                              boolean transBlank,
-                                              ProcessResult result) {
-        if (!getFilterCondSet(keyValueMap, required, false, result)) {
-            return result.success;
-        }
-        return transCondItemsToStr(transBlank, result);
-    }
-
-
-    /**
-     * check the filter conditions and get them in a set
-     *
-     * @param req        Http Servlet Request
-     * @param required   a boolean value represent whether the parameter is must required
-     * @param transCondItem   whether to translate condition item
-     * @param result     process result of parameter value
+     * @param paramCntr   parameter container object
+     * @param required    denote whether it translate blank condition
+     * @param transBlank  whether to translate condition item
+     * @param result      process result of parameter value
      * @return process result
      */
-    public static boolean getFilterCondSet(HttpServletRequest req,
-                                           boolean required,
-                                           boolean transCondItem,
-                                           ProcessResult result) {
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.FILTERCONDS, required, null, result)) {
+    public static <T> boolean getFilterCondString(T paramCntr, boolean required,
+                                                  boolean transBlank,
+                                                  StringBuilder sBuffer,
+                                                  ProcessResult result) {
+        if (!getFilterCondSet(paramCntr, required, false, sBuffer, result)) {
             return result.success;
         }
-        if (transCondItem) {
-            return transCondItems(result);
+        Set<String> filterCondSet = (Set<String>) result.retData1;
+        if (filterCondSet.isEmpty()) {
+            if (transBlank) {
+                sBuffer.append(TServerConstants.BLANK_FILTER_ITEM_STR);
+            }
+        } else {
+            sBuffer.append(TokenConstants.ARRAY_SEP);
+            for (String filterCond : filterCondSet) {
+                sBuffer.append(filterCond).append(TokenConstants.ARRAY_SEP);
+            }
         }
+        result.setSuccResult(sBuffer.toString());
+        sBuffer.delete(0, sBuffer.length());
         return result.success;
     }
 
     /**
      * check the filter conditions and get them in a set
      *
-     * @param keyValueMap        Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param required   a boolean value represent whether the parameter is must required
      * @param transCondItem   whether to translate condition item
      * @param result     process result of parameter value
      * @return process result
      */
-    private static boolean getFilterCondSet(Map<String, String> keyValueMap,
-                                            boolean required,
-                                            boolean transCondItem,
-                                            ProcessResult result) {
-        if (!WebParameterUtils.getStringParamValue(keyValueMap,
-                WebFieldDef.FILTERCONDS, required, null, result)) {
+    public static <T> boolean getFilterCondSet(T paramCntr, boolean required,
+                                               boolean transCondItem,
+                                               StringBuilder sBuffer,
+                                               ProcessResult result) {
+        if (!WebParameterUtils.getStringParamValue(paramCntr,
+                WebFieldDef.FILTERCONDS, required, null, sBuffer, result)) {
             return result.success;
         }
         if (transCondItem) {
-            return transCondItems(result);
-        }
-        return result.success;
-    }
-
-    /**
-     * translate filter condition item with "''"
-     */
-    private static boolean transCondItems(ProcessResult result) {
-        TreeSet<String> filterCondSet = (TreeSet<String>) result.retData1;
-        if (!filterCondSet.isEmpty()) {
+            // translate filter condition item with "''"
             TreeSet<String> newFilterCondSet = new TreeSet<>();
-            StringBuilder sBuilder = new StringBuilder(512);
-            for (String filterCond : filterCondSet) {
-                newFilterCondSet.add(sBuilder.append(TokenConstants.ARRAY_SEP)
-                        .append(filterCond).append(TokenConstants.ARRAY_SEP).toString());
-                sBuilder.delete(0, sBuilder.length());
+            Set<String> filterCondSet = (Set<String>) result.retData1;
+            if (!filterCondSet.isEmpty()) {
+                for (String filterCond : filterCondSet) {
+                    newFilterCondSet.add(sBuffer.append(TokenConstants.ARRAY_SEP)
+                            .append(filterCond).append(TokenConstants.ARRAY_SEP).toString());
+                    sBuffer.delete(0, sBuffer.length());
+                }
+                newFilterCondSet.comparator();
             }
-            newFilterCondSet.comparator();
             result.setSuccResult(newFilterCondSet);
         }
         return result.success;
     }
 
     /**
-     * translate filter condition item to String
-     */
-    private static boolean transCondItemsToStr(boolean transBlank,
-                                               ProcessResult result) {
-        StringBuilder sBuffer = new StringBuilder(512);
-        Set<String> filterCondSet = (Set<String>) result.retData1;
-        if (filterCondSet.isEmpty()) {
-            if (transBlank) {
-                sBuffer.append(TServerConstants.BLANK_FILTER_ITEM_STR);
-            }
-        } else {
-            sBuffer.append(TokenConstants.ARRAY_SEP);
-            for (String filterCond : filterCondSet) {
-                sBuffer.append(filterCond).append(TokenConstants.ARRAY_SEP);
-            }
-        }
-        result.setSuccResult(sBuffer.toString());
-        return result.success;
-    }
-
-    /**
      * Parse the parameter value from an json dict
      *
      * @param req         Http Servlet Request
@@ -1658,19 +1181,19 @@ public class WebParameterUtils {
     /**
      * Parse the parameter value from an string value to Date value
      *
-     * @param req         Http Servlet Request
+     * @param paramCntr   parameter container object
      * @param fieldDef    the parameter field definition
      * @param required    a boolean value represent whether the parameter is must required
      * @param defValue    a default value returned if failed to parse value from the given object
      * @param result      process result
      * @return valid result for the parameter value
      */
-    public static boolean getDateParameter(HttpServletRequest req,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           Date defValue,
-                                           ProcessResult result) {
-        if (!getStringParamValue(req, fieldDef, required, null, result)) {
+    public static <T> boolean getDateParameter(T paramCntr, WebFieldDef fieldDef,
+                                               boolean required, Date defValue,
+                                               StringBuilder sBuffer,
+                                               ProcessResult result) {
+        if (!getStringParamValue(paramCntr, fieldDef,
+                required, null, sBuffer, result)) {
             return result.success;
         }
         String paramValue = (String) result.retData1;
@@ -1683,38 +1206,13 @@ public class WebParameterUtils {
             Date date = sdf.parse(paramValue);
             result.setSuccResult(date);
         } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parameter ").append(fieldDef.name)
+            result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                     .append(" parse error: ").append(e.getMessage()).toString());
+            sBuffer.delete(0, sBuffer.length());
         }
         return result.success;
     }
 
-    public static boolean getDateParameter(Map<String, String> keyValueMap,
-                                           WebFieldDef fieldDef,
-                                           boolean required,
-                                           Date defValue,
-                                           ProcessResult result) {
-        if (!getStringParamValue(keyValueMap,
-                fieldDef, required, null, result)) {
-            return result.success;
-        }
-        String paramValue = (String) result.retData1;
-        if (paramValue == null) {
-            result.setSuccResult(defValue);
-            return result.success;
-        }
-        try {
-            DateFormat sdf = new SimpleDateFormat(TBaseConstants.META_TMP_DATE_VALUE);
-            Date date = sdf.parse(paramValue);
-            result.setSuccResult(date);
-        } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parameter ").append(fieldDef.name)
-                    .append(" parse error: ").append(e.getMessage()).toString());
-        }
-        return result.success;
-    }
 
     /**
      * Valid execution authorization info
@@ -1725,12 +1223,10 @@ public class WebParameterUtils {
      * @param result     process result
      * @return valid result for the parameter value
      */
-    public static boolean validReqAuthorizeInfo(HttpServletRequest req,
-                                                WebFieldDef fieldDef,
-                                                boolean required,
-                                                TMaster master,
-                                                ProcessResult result) {
-        if (!getStringParamValue(req, fieldDef, required, null, result)) {
+    public static boolean validReqAuthorizeInfo(HttpServletRequest req, WebFieldDef fieldDef,
+                                                boolean required, TMaster master,
+                                                StringBuilder sBuffer, ProcessResult result) {
+        if (!getStringParamValue(req, fieldDef, required, null, sBuffer, result)) {
             return result.success;
         }
         String paramValue = (String) result.retData1;
@@ -1774,9 +1270,8 @@ public class WebParameterUtils {
      * @param result       process result
      * @return check result for string value of parameter
      */
-    private static boolean checkStrValueNorms(WebFieldDef fieldDef,
-                                              String paramVal,
-                                              ProcessResult result) {
+    private static boolean checkStrValueNorms(WebFieldDef fieldDef, String paramVal,
+                                              StringBuilder sBuffer, ProcessResult result) {
         paramVal = paramVal.trim();
         if (TStringUtils.isBlank(paramVal)) {
             result.setSuccResult(null);
@@ -1785,20 +1280,20 @@ public class WebParameterUtils {
         // check value's max length
         if (fieldDef.valMaxLen != TBaseConstants.META_VALUE_UNDEFINED) {
             if (paramVal.length() > fieldDef.valMaxLen) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("over max length for ").append(fieldDef.name)
-                        .append(", only allow ").append(fieldDef.valMaxLen)
-                        .append(" length").toString());
+                result.setFailResult(sBuffer.append("over max length for ")
+                        .append(fieldDef.name).append(", only allow ")
+                        .append(fieldDef.valMaxLen).append(" length").toString());
+                sBuffer.delete(0, sBuffer.length());
                 return false;
             }
         }
         // check value's pattern
         if (fieldDef.regexCheck) {
             if (!paramVal.matches(fieldDef.regexDef.getPattern())) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("illegal value for ").append(fieldDef.name)
-                        .append(", value ").append(fieldDef.regexDef.getErrMsgTemp())
-                        .toString());
+                result.setFailResult(sBuffer.append("illegal value for ")
+                        .append(fieldDef.name).append(", value ")
+                        .append(fieldDef.regexDef.getErrMsgTemp()).toString());
+                sBuffer.delete(0, sBuffer.length());
                 return false;
             }
         }
@@ -1815,35 +1310,33 @@ public class WebParameterUtils {
      * param minValue      the parameter min value
      * @param hasMaxVal    whether there is a maximum
      * param maxValue      the parameter max value
+     * @param sBuffer      string buffer
      * @param result   process result
      * @return check result for string value of parameter
      */
-    private static boolean checkIntValueNorms(WebFieldDef fieldDef,
-                                              String paramValue,
-                                              boolean hasMinVal,
-                                              int minValue,
-                                              boolean hasMaxVal,
-                                              int maxValue,
-                                              ProcessResult result) {
+    private static boolean checkIntValueNorms(WebFieldDef fieldDef, String paramValue,
+                                              boolean hasMinVal, int minValue,
+                                              boolean hasMaxVal, int maxValue,
+                                              StringBuilder sBuffer, ProcessResult result) {
         try {
             int paramIntVal = Integer.parseInt(paramValue);
             if (hasMinVal && paramIntVal < minValue) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("Parameter ").append(fieldDef.name)
+                result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                         .append(" value must >= ").append(minValue).toString());
+                sBuffer.delete(0, sBuffer.length());
                 return false;
             }
             if (hasMaxVal && paramIntVal > maxValue) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("Parameter ").append(fieldDef.name)
+                result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                         .append(" value must <= ").append(maxValue).toString());
+                sBuffer.delete(0, sBuffer.length());
                 return false;
             }
             result.setSuccResult(paramIntVal);
         } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parameter ").append(fieldDef.name)
+            result.setFailResult(sBuffer.append("Parameter ").append(fieldDef.name)
                     .append(" parse error: ").append(e.getMessage()).toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         return true;
@@ -2583,44 +2076,40 @@ public class WebParameterUtils {
     }
 
     // translate rule info to json format string
-    public static int getAndCheckFlowRules(HttpServletRequest req,
-                                           String defValue,
-                                           ProcessResult result) {
+    public static <T> int getAndCheckFlowRules(T paramCntr, String defValue,
+                                               StringBuilder sBuffer,
+                                               ProcessResult result) {
         // get parameter value
-        String paramValue = req.getParameter(WebFieldDef.FLOWCTRLSET.name);
-        if (paramValue == null) {
-            paramValue = req.getParameter(WebFieldDef.FLOWCTRLSET.shortName);
-        }
-        if (TStringUtils.isBlank(paramValue)) {
-            result.setSuccResult(defValue);
-            return 0;
-        }
-        paramValue = paramValue.trim();
-        return validFlowRuleValue(paramValue, result);
-    }
-
-    // translate rule info to json format string
-    public static int getAndCheckFlowRules(Map<String, String> keyValueMap,
-                                           String defValue,
-                                           ProcessResult result) {
+        String paramValue;
         // get parameter value
-        String paramValue = keyValueMap.get(WebFieldDef.FLOWCTRLSET.name);
-        if (paramValue == null) {
-            paramValue = keyValueMap.get(WebFieldDef.FLOWCTRLSET.shortName);
+        if (paramCntr instanceof Map) {
+            Map<String, String> keyValueMap =
+                    (Map<String, String>) paramCntr;
+            paramValue = keyValueMap.get(WebFieldDef.FLOWCTRLSET.name);
+            if (paramValue == null) {
+                paramValue = keyValueMap.get(WebFieldDef.FLOWCTRLSET.shortName);
+            }
+        } else if (paramCntr instanceof HttpServletRequest) {
+            HttpServletRequest req = (HttpServletRequest) paramCntr;
+            paramValue = req.getParameter(WebFieldDef.FLOWCTRLSET.name);
+            if (paramValue == null) {
+                paramValue = req.getParameter(WebFieldDef.FLOWCTRLSET.shortName);
+            }
+        } else {
+            throw new IllegalArgumentException("Unknown parameter type!");
         }
         if (TStringUtils.isBlank(paramValue)) {
             result.setSuccResult(defValue);
             return 0;
         }
         paramValue = paramValue.trim();
-        return validFlowRuleValue(paramValue, result);
+        return validFlowRuleValue(paramValue, sBuffer, result);
     }
 
     private static int validFlowRuleValue(String paramValue,
+                                          StringBuilder sBuffer,
                                           ProcessResult result) {
         int ruleCnt = 0;
-        StringBuilder strBuffer = new StringBuilder(512);
-        strBuffer.append("[");
         paramValue = paramValue.trim();
         List<Integer> ruleTypes = Arrays.asList(0, 1, 2, 3);
         FlowCtrlRuleHandler flowCtrlRuleHandler =
@@ -2630,34 +2119,37 @@ public class WebParameterUtils {
             flowCtrlItemMap =
                     flowCtrlRuleHandler.parseFlowCtrlInfo(paramValue);
         } catch (Throwable e) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Parse parameter ").append(WebFieldDef.FLOWCTRLSET.name)
+            result.setFailResult(sBuffer.append("Parse parameter ")
+                    .append(WebFieldDef.FLOWCTRLSET.name)
                     .append(" failure: '").append(e.toString()).toString());
+            sBuffer.delete(0, sBuffer.length());
             return 0;
         }
+        sBuffer.append("[");
         for (Integer typeId : ruleTypes) {
             if (typeId != null) {
                 int rules = 0;
                 List<FlowCtrlItem> flowCtrlItems = flowCtrlItemMap.get(typeId);
                 if (flowCtrlItems != null) {
                     if (ruleCnt++ > 0) {
-                        strBuffer.append(",");
+                        sBuffer.append(",");
                     }
-                    strBuffer.append("{\"type\":").append(typeId.intValue()).append(",\"rule\":[");
+                    sBuffer.append("{\"type\":").append(typeId.intValue()).append(",\"rule\":[");
                     for (FlowCtrlItem flowCtrlItem : flowCtrlItems) {
                         if (flowCtrlItem != null) {
                             if (rules++ > 0) {
-                                strBuffer.append(",");
+                                sBuffer.append(",");
                             }
-                            strBuffer = flowCtrlItem.toJsonString(strBuffer);
+                            sBuffer = flowCtrlItem.toJsonString(sBuffer);
                         }
                     }
-                    strBuffer.append("]}");
+                    sBuffer.append("]}");
                 }
             }
         }
-        strBuffer.append("]");
-        result.setSuccResult(strBuffer.toString());
+        sBuffer.append("]");
+        result.setSuccResult(sBuffer.toString());
+        sBuffer.delete(0, sBuffer.length());
         return ruleCnt;
     }
 }
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/metamanage/MetaDataManager.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/metamanage/MetaDataManager.java
index cd5f46b..adee45d 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/metamanage/MetaDataManager.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/metamanage/MetaDataManager.java
@@ -45,6 +45,7 @@ import org.apache.tubemq.server.common.fileconfig.MasterReplicationConfig;
 import org.apache.tubemq.server.common.statusdef.ManageStatus;
 import org.apache.tubemq.server.common.statusdef.TopicStatus;
 import org.apache.tubemq.server.common.utils.ProcessResult;
+import org.apache.tubemq.server.common.utils.WebParameterUtils;
 import org.apache.tubemq.server.master.bdbstore.MasterGroupStatus;
 import org.apache.tubemq.server.master.metamanage.metastore.BdbMetaStoreServiceImpl;
 import org.apache.tubemq.server.master.metamanage.metastore.MetaStoreService;
@@ -461,22 +462,6 @@ public class MetaDataManager implements Server {
         return result.isSuccess();
     }
 
-    /**
-     * Delete broker's topic configure information
-     *
-     * @param operator  operator
-     * @param brokerId  need deleted broker id
-     * @param strBuffer  the print information string buffer
-     * @param result     the process result return
-     * @return true if success otherwise false
-     */
-    public boolean delBrokerTopicConfig(String operator,
-                                        int brokerId,
-                                        StringBuilder strBuffer,
-                                        ProcessResult result) {
-        metaStoreService.delTopicConfByBrokerId(operator, brokerId, strBuffer, result);
-        return result.isSuccess();
-    }
 
     /**
      * Delete broker configure information
@@ -554,6 +539,145 @@ public class MetaDataManager implements Server {
     }
 
     /**
+     * Delete broker configure information
+     *
+     * @param operator  operator
+     * @param rsvData   if reserve topic's data info
+     * @param brokerIdSet  need deleted broker id set
+     * @param sBuffer  the print information string buffer
+     * @param result     the process result return
+     * @return true if success otherwise false
+     */
+    public List<BrokerProcessResult> delBrokerConfInfo(String operator, boolean rsvData,
+                                                       Set<Integer> brokerIdSet,
+                                                       StringBuilder sBuffer,
+                                                       ProcessResult result) {
+        List<BrokerProcessResult> retInfo = new ArrayList<>();
+        Map<Integer, BrokerConfEntity> cfmBrokerMap = new HashMap<>();
+        Map<Integer, BrokerConfEntity> tgtBrokerConfMap =
+                getBrokerConfInfo(brokerIdSet, null, null);
+        // check target broker configure's status
+        for (BrokerConfEntity entity : tgtBrokerConfMap.values()) {
+            if (entity == null) {
+                continue;
+            }
+            if (!isMatchDeleteConds(entity.getBrokerId(),
+                    entity.getManageStatus(), rsvData, sBuffer, result)) {
+                retInfo.add(new BrokerProcessResult(
+                        entity.getBrokerId(), entity.getBrokerIp(), result));
+            }
+            cfmBrokerMap.put(entity.getBrokerId(), entity);
+        }
+        if (cfmBrokerMap.isEmpty()) {
+            return retInfo;
+        }
+        // execute delete operation
+        for (BrokerConfEntity entry : cfmBrokerMap.values()) {
+            if (entry == null) {
+                continue;
+            }
+            delBrokerConfig(operator, entry.getBrokerId(), rsvData, sBuffer, result);
+            retInfo.add(new BrokerProcessResult(
+                    entry.getBrokerId(), entry.getBrokerIp(), result));
+        }
+        return retInfo;
+    }
+
+    private boolean isMatchDeleteConds(int brokerId, ManageStatus brokerStatus,
+                                       boolean rsvData, StringBuilder sBuffer,
+                                       ProcessResult result) {
+        Map<String, TopicDeployEntity> topicConfigMap =
+                getBrokerTopicConfEntitySet(brokerId);
+        if (topicConfigMap == null || topicConfigMap.isEmpty()) {
+            result.setSuccResult(null);
+            return result.isSuccess();
+        }
+        if (WebParameterUtils.checkBrokerInOfflining(brokerId,
+                brokerStatus.getCode(), this)) {
+            result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
+                    sBuffer.append("Illegal value: the broker is processing offline event by brokerId=")
+                            .append(brokerId).append(", please wait and try later!").toString());
+            sBuffer.delete(0, sBuffer.length());
+            return result.isSuccess();
+        }
+        if (rsvData) {
+            for (Map.Entry<String, TopicDeployEntity> entry : topicConfigMap.entrySet()) {
+                if (entry.getValue() == null) {
+                    continue;
+                }
+                if (entry.getValue().isAcceptPublish()
+                        || entry.getValue().isAcceptSubscribe()) {
+                    result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
+                            sBuffer.append("The topic ").append(entry.getKey())
+                                    .append("'s acceptPublish and acceptSubscribe parameters")
+                                    .append(" must be false in broker=")
+                                    .append(brokerId)
+                                    .append(" before broker delete by reserve data method!").toString());
+                    sBuffer.delete(0, sBuffer.length());
+                    return result.isSuccess();
+                }
+            }
+        } else {
+            result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
+                    sBuffer.append("Topic configure of broker by brokerId=")
+                            .append(brokerId)
+                            .append(" not deleted, please delete broker's topic configure first!").toString());
+            sBuffer.delete(0, sBuffer.length());
+            return result.isSuccess();
+        }
+        result.setSuccResult(null);
+        return result.isSuccess();
+    }
+
+
+    private boolean delBrokerConfig(String operator, int brokerId, boolean rsvData,
+                                    StringBuilder strBuffer, ProcessResult result) {
+        BrokerConfEntity curEntity =
+                metaStoreService.getBrokerConfByBrokerId(brokerId);
+        if (curEntity == null) {
+            result.setSuccResult(null);
+            return result.isSuccess();
+        }
+        // process topic's configure
+        Map<String, TopicDeployEntity> topicConfigMap =
+                metaStoreService.getConfiguredTopicInfo(brokerId);
+        if (topicConfigMap != null && !topicConfigMap.isEmpty()) {
+            if (rsvData) {
+                if (!metaStoreService.delTopicConfByBrokerId(operator,
+                        brokerId, strBuffer, result)) {
+                    return result.isSuccess();
+                }
+            } else {
+                result.setFailResult(DataOpErrCode.DERR_UNCLEANED.getCode(),
+                        "The broker's topic configure uncleaned!");
+                return result.isSuccess();
+            }
+        }
+        // check broker's manage status
+        if (curEntity.getManageStatus().isOnlineStatus()) {
+            result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
+                    "Broker manage status is online, please offline first!");
+            return result.isSuccess();
+        }
+        BrokerSyncStatusInfo brokerSyncStatusInfo =
+                this.brokerRunSyncManageMap.get(curEntity.getBrokerId());
+        if (brokerSyncStatusInfo != null) {
+            if (brokerSyncStatusInfo.isBrokerRegister()
+                    && (curEntity.getManageStatus() == ManageStatus.STATUS_MANAGE_OFFLINE
+                    && brokerSyncStatusInfo.getBrokerRunStatus() != TStatusConstants.STATUS_SERVICE_UNDEFINED)) {
+                result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
+                        "Broker is processing offline event, please wait and try later!");
+                return result.isSuccess();
+            }
+        }
+        if (metaStoreService.delBrokerConf(operator, brokerId, strBuffer, result)) {
+            this.brokerRunSyncManageMap.remove(brokerId);
+            delBrokerRunData(brokerId);
+        }
+        return result.isSuccess();
+    }
+
+    /**
      * Manual reload broker config info
      *
      * @param entity
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
index fe1501a..bc1ce33 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebAdminFlowRuleHandler.java
@@ -113,51 +113,51 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
     private StringBuilder innSetFlowControlRule(HttpServletRequest req,
                                                 boolean do4DefFlowCtrl) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // get createUser info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.CREATEUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String createUser = (String) result.retData1;
         // check and get create date
         if (!WebParameterUtils.getDateParameter(req,
-                WebFieldDef.CREATEDATE, false, new Date(), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEDATE, false, new Date(), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Date createDate = (Date) result.retData1;
         // get rule required status info
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.STATUSID, false, 0, 0, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.STATUSID, false, 0, 0, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int statusId = (int) result.retData1;
         // get and valid priority info
-        if (!getQryPriorityIdWithCheck(req, false, 301, 101, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getQryPriorityIdWithCheck(req, false, 301, 101, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int qryPriorityId = (int) result.retData1;
         // get group name info
-        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         // get and flow control rule info
         int ruleCnt = getAndCheckFlowRules(req, blankFlowCtrlRules, result);
         if (!result.success) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String flowCtrlInfo = (String) result.retData1;
         try {
@@ -175,11 +175,11 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
                                     false, createUser, createDate));
                 }
             }
-            WebParameterUtils.buildSuccessResult(sBuilder);
+            WebParameterUtils.buildSuccessResult(sBuffer);
         } catch (Exception e) {
-            WebParameterUtils.buildFailResult(sBuilder, e.getMessage());
+            WebParameterUtils.buildFailResult(sBuffer, e.getMessage());
         }
-        return sBuilder;
+        return sBuffer;
     }
 
     /**
@@ -192,40 +192,40 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
     private StringBuilder innDelGroupFlowCtrlRuleStatus(HttpServletRequest req,
                                                         boolean do4DefFlowCtrl) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // get modifyUser info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.CREATEUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String modifyUser = (String) result.retData1;
         // check and get modifyDate date
         if (!WebParameterUtils.getDateParameter(req,
-                WebFieldDef.CREATEDATE, false, new Date(), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEDATE, false, new Date(), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Date modifyDate = (Date) result.retData1;
         // get group name info
-        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         try {
             brokerConfManager.confDeleteBdbGroupFlowCtrl(batchGroupNames);
-            WebParameterUtils.buildSuccessResult(sBuilder);
+            WebParameterUtils.buildSuccessResult(sBuffer);
         } catch (Exception e) {
-            WebParameterUtils.buildFailResult(sBuilder, e.getMessage());
+            WebParameterUtils.buildFailResult(sBuffer, e.getMessage());
         }
-        return sBuilder;
+        return sBuffer;
     }
 
     /**
@@ -239,53 +239,52 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
                                                         boolean do4DefFlowCtrl) {
         // #lizard forgives
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // get modifyUser info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.CREATEUSER, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEUSER, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String modifyUser = (String) result.retData1;
         // check and get modifyDate date
         if (!WebParameterUtils.getDateParameter(req,
-                WebFieldDef.CREATEDATE, false, new Date(), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CREATEDATE, false, new Date(), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Date modifyDate = (Date) result.retData1;
         // get group name info
-        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getGroupNameWithCheck(req, true, do4DefFlowCtrl, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         // get rule required status info
-        if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.STATUSID, false,
-                TBaseConstants.META_VALUE_UNDEFINED, 0, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.STATUSID,
+                false, TBaseConstants.META_VALUE_UNDEFINED, 0, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int statusId = (int) result.retData1;
         // get and flow control rule info
         int ruleCnt = getAndCheckFlowRules(req, null, result);
         if (!result.success) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String newFlowCtrlInfo = (String) result.retData1;
         // get and valid priority info
         if (!getQryPriorityIdWithCheck(req, false,
-                TBaseConstants.META_VALUE_UNDEFINED, 101, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TBaseConstants.META_VALUE_UNDEFINED, 101, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int qryPriorityId = (int) result.retData1;
         try {
@@ -328,11 +327,11 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
                     }
                 }
             }
-            WebParameterUtils.buildSuccessResult(sBuilder);
+            WebParameterUtils.buildSuccessResult(sBuffer);
         } catch (Exception e) {
-            WebParameterUtils.buildFailResult(sBuilder, e.getMessage());
+            WebParameterUtils.buildFailResult(sBuffer, e.getMessage());
         }
-        return sBuilder;
+        return sBuffer;
     }
 
     /**
@@ -345,36 +344,36 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
     private StringBuilder innQueryGroupFlowCtrlRule(HttpServletRequest req,
                                                     boolean do4DefFlowCtrl) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         BdbGroupFlowCtrlEntity bdbGroupFlowCtrlEntity = new BdbGroupFlowCtrlEntity();
         // get modifyUser info
         WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.CREATEUSER, false, null, result);
+                WebFieldDef.CREATEUSER, false, null, sBuffer, result);
         bdbGroupFlowCtrlEntity.setCreateUser((String) result.retData1);
         // get status id info
         WebParameterUtils.getIntParamValue(req, WebFieldDef.STATUSID, false,
-                TBaseConstants.META_VALUE_UNDEFINED, 0, result);
+                TBaseConstants.META_VALUE_UNDEFINED, 0, sBuffer, result);
         bdbGroupFlowCtrlEntity.setStatusId((int) result.retData1);
         // get and valid priority info
         getQryPriorityIdWithCheck(req, false,
-                TBaseConstants.META_VALUE_UNDEFINED, 101, result);
+                TBaseConstants.META_VALUE_UNDEFINED, 101, sBuffer, result);
         bdbGroupFlowCtrlEntity.setQryPriorityId((int) result.retData1);
-        getGroupNameWithCheck(req, false, do4DefFlowCtrl, result);
+        getGroupNameWithCheck(req, false, do4DefFlowCtrl, sBuffer, result);
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         // query group flow ctrl infos
         List<BdbGroupFlowCtrlEntity> webGroupFlowCtrlEntities =
                 brokerConfManager.confGetBdbGroupFlowCtrl(bdbGroupFlowCtrlEntity);
         int totalCnt = 0;
         boolean found = false;
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         if (do4DefFlowCtrl) {
             for (BdbGroupFlowCtrlEntity entity : webGroupFlowCtrlEntities) {
                 if (entity.getGroupName().equals(
                         TServerConstants.TOKEN_DEFAULT_FLOW_CONTROL)) {
                     if (totalCnt++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder = entity.toJsonString(sBuilder);
+                    sBuffer = entity.toJsonString(sBuffer);
                     break;
                 }
             }
@@ -393,14 +392,14 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
                 }
                 if (found) {
                     if (totalCnt++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder = entity.toJsonString(sBuilder);
+                    sBuffer = entity.toJsonString(sBuffer);
                 }
             }
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, totalCnt);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCnt);
+        return sBuffer;
     }
 
     // translate rule info to json format string
@@ -460,23 +459,24 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
     }
 
     private boolean getGroupNameWithCheck(HttpServletRequest req, boolean required,
-                                          boolean do4DefFlowCtrl, ProcessResult result) {
+                                          boolean do4DefFlowCtrl, StringBuilder sBuffer,
+                                          ProcessResult result) {
         if (do4DefFlowCtrl) {
             result.setSuccResult(rsvGroupNameSet);
             return true;
         }
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, required, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, required, null, sBuffer, result)) {
             return result.success;
         }
         Set<String> inGroupSet = (Set<String>) result.retData1;
         for (String rsvGroup : rsvGroupNameSet) {
             if (inGroupSet.contains(rsvGroup)) {
-                result.setFailResult(new StringBuilder(512)
-                        .append("Illegal value in ").append(WebFieldDef.COMPSGROUPNAME.name)
-                        .append(" parameter: '").append(rsvGroup)
-                        .append("' is a system reserved value!").toString());
+                result.setFailResult(sBuffer.append("Illegal value in ")
+                        .append(WebFieldDef.COMPSGROUPNAME.name).append(" parameter: '")
+                        .append(rsvGroup).append("' is a system reserved value!").toString());
+                sBuffer.delete(0, sBuffer.length());
                 return false;
             }
         }
@@ -485,33 +485,35 @@ public class WebAdminFlowRuleHandler extends AbstractWebHandler {
 
     private boolean getQryPriorityIdWithCheck(HttpServletRequest req, boolean required,
                                               int defValue, int minValue,
-                                              ProcessResult result) {
-        if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.QRYPRIORITYID, required,
-                defValue, minValue, result)) {
+                                              StringBuilder sBuffer, ProcessResult result) {
+        if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.QRYPRIORITYID,
+                required, defValue, minValue, sBuffer, result)) {
             return result.success;
         }
         int qryPriorityId = (int) result.retData1;
         if (qryPriorityId > 303 || qryPriorityId < 101) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" parameter: ").append(WebFieldDef.QRYPRIORITYID.name)
                     .append(" value must be greater than or equal")
                     .append(" to 101 and less than or equal to 303!").toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         if (!allowedPriorityVal.contains(qryPriorityId % 100)) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" parameter: the units of ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" must in ").append(allowedPriorityVal).toString());
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" parameter: the units of ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" must in ")
+                    .append(allowedPriorityVal).toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         if (!allowedPriorityVal.contains(qryPriorityId / 100)) {
-            result.setFailResult(new StringBuilder(512)
-                    .append("Illegal value in ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" parameter: the hundreds of ").append(WebFieldDef.QRYPRIORITYID.name)
-                    .append(" must in ").append(allowedPriorityVal).toString());
+            result.setFailResult(sBuffer.append("Illegal value in ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" parameter: the hundreds of ")
+                    .append(WebFieldDef.QRYPRIORITYID.name).append(" must in ")
+                    .append(allowedPriorityVal).toString());
+            sBuffer.delete(0, sBuffer.length());
             return false;
         }
         return true;
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerConfHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerConfHandler.java
index acfd7d5..3b663e7 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerConfHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerConfHandler.java
@@ -67,27 +67,17 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
     @Override
     public void registerWebApiMethod() {
         // register query method
-        registerQueryWebMethod("admin_query_broker_run_status",
-                "adminQueryBrokerRunStatusInfo");
         registerQueryWebMethod("admin_query_broker_configure",
-                "adminQueryBrokerDefConfEntityInfo");
+                "adminQueryBrokerConfInfo");
         // register modify method
         registerModifyWebMethod("admin_add_broker_configure",
-                "adminAddBrokerDefConfEntityInfo");
-        registerModifyWebMethod("admin_bath_add_broker_configure",
-                "adminBatchAddBrokerDefConfEntityInfo");
-        registerModifyWebMethod("admin_online_broker_configure",
-                "adminOnlineBrokerConf");
+                "adminAddBrokerConfInfo");
+        registerModifyWebMethod("admin_batch_add_broker_configure",
+                "adminBatchAddBrokerConfInfo");
         registerModifyWebMethod("admin_update_broker_configure",
-                "adminUpdateBrokerConf");
-        registerModifyWebMethod("admin_reload_broker_configure",
-                "adminReloadBrokerConf");
-        registerModifyWebMethod("admin_set_broker_read_or_write",
-                "adminSetReadOrWriteBrokerConf");
-        registerModifyWebMethod("admin_release_broker_autoforbidden_status",
-                "adminRelBrokerAutoForbiddenStatus");
-        registerModifyWebMethod("admin_offline_broker_configure",
-                "adminOfflineBrokerConf");
+                "adminUpdateBrokerConfInfo");
+        registerModifyWebMethod("admin_batch_update_broker_configure",
+                "adminBatchUpdBrokerConfInfo");
         registerModifyWebMethod("admin_delete_broker_configure",
                 "adminDeleteBrokerConfEntityInfo");
     }
@@ -98,46 +88,46 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
      * @param req
      * @return
      */
-    public StringBuilder adminQueryBrokerDefConfEntityInfo(HttpServletRequest req) {
+    public StringBuilder adminQueryBrokerConfInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
         StringBuilder sBuffer = new StringBuilder(512);
         BrokerConfEntity qryEntity = new BrokerConfEntity();
         // get queried operation info, for createUser, modifyUser, dataVersionId
-        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, result)) {
+        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get brokerId field
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<Integer> brokerIds = (Set<Integer>) result.retData1;
         // get brokerIp info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPBROKERIP, false, null, result)) {
+                WebFieldDef.COMPBROKERIP, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> brokerIpSet = (Set<String>) result.retData1;
         // get brokerPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         int brokerPort = (int) result.getRetData();
         // get brokerTlsPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERTLSPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         int brokerTlsPort = (int) result.getRetData();
         // get brokerWebPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERWEBPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -145,7 +135,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         // get regionId field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.REGIONID,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.BROKER_REGION_ID_MIN, result)) {
+                TServerConstants.BROKER_REGION_ID_MIN, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -153,49 +143,55 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         // get groupId field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.GROUPID,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.BROKER_GROUP_ID_MIN, result)) {
+                TServerConstants.BROKER_GROUP_ID_MIN, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         int groupId = (int) result.getRetData();
         // get and valid TopicPropGroup info
         if (!WebParameterUtils.getTopicPropInfo(req,
-                null, result)) {
+                null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         TopicPropGroup brokerProps = (TopicPropGroup) result.getRetData();
         // get and valid TopicStatusId info
         if (!WebParameterUtils.getTopicStatusParamValue(req,
-                false, TopicStatus.STATUS_TOPIC_UNDEFINED, result)) {
+                false, TopicStatus.STATUS_TOPIC_UNDEFINED, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         TopicStatus topicStatus = (TopicStatus) result.getRetData();
+        // get and valid broker manage status info
+        if (!getManageStatusParamValue(false, req, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        ManageStatus mngStatus = (ManageStatus) result.getRetData();
         // get topic info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // get isInclude info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.ISINCLUDE, false, true, result)) {
+                WebFieldDef.ISINCLUDE, false, true, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean isInclude = (Boolean) result.retData1;
         // get withTopic info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.WITHTOPIC, false, false, result)) {
+                WebFieldDef.WITHTOPIC, false, false, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean withTopic = (Boolean) result.retData1;
         // fill query entity fields
         qryEntity.updModifyInfo(qryEntity.getDataVerId(), brokerPort, brokerTlsPort,
-                brokerWebPort, regionId, groupId, null, brokerProps);
+                brokerWebPort, regionId, groupId, mngStatus, brokerProps);
         Map<Integer, BrokerConfEntity> qryResult =
                 metaDataManager.getBrokerConfInfo(brokerIds, brokerIpSet, qryEntity);
         // build query result
@@ -239,7 +235,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
     }
 
     /**
-     * Add default config to brokers in batch
+     * Add broker config to brokers in batch
      *
      * @param req
      * @return
@@ -248,6 +244,56 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         return innBatchAddOrUpdBrokerConfInfo(req, true);
     }
 
+    /**
+     * Update broker configure in batch
+     *
+     * @param req
+     * @return
+     */
+    public StringBuilder adminBatchUpdBrokerConfInfo(HttpServletRequest req) {
+        return innBatchAddOrUpdBrokerConfInfo(req, false);
+    }
+
+    /**
+     * Delete broker config
+     *
+     * @param req
+     * @return
+     */
+    public StringBuilder adminDeleteBrokerConfEntityInfo(HttpServletRequest req) {
+        ProcessResult result = new ProcessResult();
+        StringBuilder sBuffer = new StringBuilder(512);
+        // valid operation authorize info
+        if (!WebParameterUtils.validReqAuthorizeInfo(req,
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        // check and get operation info
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        BaseEntity opEntity = (BaseEntity) result.getRetData();
+        // get isReservedData info
+        if (!WebParameterUtils.getBooleanParamValue(req,
+                WebFieldDef.ISRESERVEDDATA, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        Boolean isReservedData = (Boolean) result.retData1;
+        // check and get brokerId field
+        if (!WebParameterUtils.getIntParamValue(req,
+                WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        Set<Integer> brokerIds = (Set<Integer>) result.retData1;
+        List<BrokerProcessResult> retInfo =
+                metaDataManager.delBrokerConfInfo(opEntity.getModifyUser(),
+                        isReservedData, brokerIds, sBuffer, result);
+        return buildRetInfo(retInfo, sBuffer);
+    }
 
     private StringBuilder innAddOrUpdBrokerConfInfo(HttpServletRequest req,
                                                     boolean isAddOp) {
@@ -255,12 +301,12 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -271,7 +317,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         // get brokerPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERPORT,
                 false, (isAddOp ? defClusterSetting.getBrokerPort()
-                        : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                        : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -279,7 +325,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         // get brokerTlsPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERTLSPORT,
                 false, (isAddOp ? defClusterSetting.getBrokerTLSPort()
-                        : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                        : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -287,7 +333,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         // get brokerWebPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERWEBPORT,
                 false, (isAddOp ? defClusterSetting.getBrokerWebPort()
-                        : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                        : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -296,7 +342,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.REGIONID,
                 false, (isAddOp ? TServerConstants.BROKER_REGION_ID_DEF
                         : TBaseConstants.META_VALUE_UNDEFINED),
-                TServerConstants.BROKER_REGION_ID_MIN, result)) {
+                TServerConstants.BROKER_REGION_ID_MIN, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -305,18 +351,24 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.GROUPID,
                 false, (isAddOp ? TServerConstants.BROKER_GROUP_ID_DEF
                         : TBaseConstants.META_VALUE_UNDEFINED),
-                TServerConstants.BROKER_GROUP_ID_MIN, result)) {
+                TServerConstants.BROKER_GROUP_ID_MIN, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         int groupId = (int) result.getRetData();
         // get and valid TopicPropGroup info
         if (!WebParameterUtils.getTopicPropInfo(req,
-                (isAddOp ? defClusterSetting.getClsDefTopicProps() : null), result)) {
+                (isAddOp ? defClusterSetting.getClsDefTopicProps() : null), sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         TopicPropGroup brokerProps = (TopicPropGroup) result.getRetData();
+        // get and valid broker manage status info
+        if (!getManageStatusParamValue(isAddOp, req, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
+        }
+        ManageStatus mngStatus = (ManageStatus) result.getRetData();
         // add record and process result
         List<BrokerProcessResult> retInfo = new ArrayList<>();
         if (isAddOp) {
@@ -330,11 +382,11 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
             retInfo.add(metaDataManager.addOrUpdBrokerConfig(isAddOp, opEntity,
                     brokerIdAndIpTuple.getF0(), brokerIdAndIpTuple.getF1(), brokerPort,
                     brokerTlsPort, brokerWebPort, regionId, groupId,
-                    ManageStatus.STATUS_MANAGE_APPLY, brokerProps, sBuffer, result));
+                    mngStatus, brokerProps, sBuffer, result));
         } else {
             // check and get brokerId field
             if (!WebParameterUtils.getIntParamValue(req,
-                    WebFieldDef.COMPSBROKERID, true, result)) {
+                    WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
                 WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
                 return sBuffer;
             }
@@ -342,7 +394,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
             for (Integer brokerId : brokerIdSet) {
                 retInfo.add(metaDataManager.addOrUpdBrokerConfig(isAddOp, opEntity,
                         brokerId, "", brokerPort, brokerTlsPort, brokerWebPort,
-                        regionId, groupId, null, brokerProps, sBuffer, result));
+                        regionId, groupId, mngStatus, brokerProps, sBuffer, result));
             }
         }
         return buildRetInfo(retInfo, sBuffer);
@@ -360,12 +412,12 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -388,133 +440,6 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
 
 
     /**
-     * Delete broker config
-     *
-     * @param req
-     * @return
-     */
-    public StringBuilder adminDeleteBrokerConfEntityInfo(HttpServletRequest req) {
-        ProcessResult result = new ProcessResult();
-        StringBuilder sBuffer = new StringBuilder(512);
-        // valid operation authorize info
-        if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
-            return sBuffer;
-        }
-        // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
-            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
-            return sBuffer;
-        }
-        BaseEntity opInfoEntity = (BaseEntity) result.getRetData();
-        // get isReservedData info
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.ISRESERVEDDATA, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
-            return sBuffer;
-        }
-        Boolean isReservedData = (Boolean) result.retData1;
-        // check and get brokerId field
-        if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, true, result)) {
-            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
-            return sBuffer;
-        }
-        Set<Integer> brokerIds = (Set<Integer>) result.retData1;
-        if (brokerIds.isEmpty()) {
-            WebParameterUtils.buildFailResult(sBuffer,
-                    "Illegal value: Null value of brokerId parameter");
-            return sBuffer;
-        }
-        Map<Integer, BrokerConfEntity> qryResult =
-                metaDataManager.getBrokerConfInfo(brokerIds, null, null);
-        if (qryResult.isEmpty()) {
-            WebParameterUtils.buildFailResult(sBuffer,
-                    "Illegal value: not found broker configure by brokerId value");
-            return sBuffer;
-        }
-        // check broker configure status
-        List<BrokerProcessResult> retInfo = new ArrayList<>();
-        Map<Integer, BrokerConfEntity> needDelMap = new HashMap<>();
-        Map<String, TopicDeployEntity> topicConfigMap;
-        for (BrokerConfEntity entity : qryResult.values()) {
-            if (entity == null) {
-                continue;
-            }
-            topicConfigMap = metaDataManager.getBrokerTopicConfEntitySet(entity.getBrokerId());
-            if (topicConfigMap == null || topicConfigMap.isEmpty()) {
-                needDelMap.put(entity.getBrokerId(), entity);
-                continue;
-            }
-            if (WebParameterUtils.checkBrokerInOfflining(entity.getBrokerId(),
-                    entity.getManageStatus().getCode(), metaDataManager)) {
-                result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
-                        sBuffer.append("Illegal value: the broker is processing offline event by brokerId=")
-                                .append(entity.getBrokerId()).append(", please wait and try later!").toString());
-                retInfo.add(new BrokerProcessResult(
-                        entity.getBrokerId(), entity.getBrokerIp(), result));
-                continue;
-            }
-            boolean isMatched = true;
-            if (isReservedData) {
-                for (Map.Entry<String, TopicDeployEntity> entry : topicConfigMap.entrySet()) {
-                    if (entry.getValue() == null) {
-                        continue;
-                    }
-                    if (entry.getValue().getTopicProps().isAcceptPublish()
-                            || entry.getValue().getTopicProps().isAcceptSubscribe()) {
-                        result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
-                                sBuffer.append("The topic ").append(entry.getKey())
-                                        .append("'s acceptPublish and acceptSubscribe parameters")
-                                        .append(" must be false in broker=")
-                                        .append(entity.getBrokerId())
-                                        .append(" before broker delete by reserve data method!").toString());
-                        retInfo.add(new BrokerProcessResult(
-                                entity.getBrokerId(), entity.getBrokerIp(), result));
-                        isMatched = false;
-                        break;
-                    }
-                }
-            } else {
-                result.setFailResult(DataOpErrCode.DERR_ILLEGAL_STATUS.getCode(),
-                        sBuffer.append("Topic configure of broker by brokerId=")
-                                .append(entity.getBrokerId())
-                                .append(" not deleted, please delete broker's topic configure first!").toString());
-                retInfo.add(new BrokerProcessResult(
-                        entity.getBrokerId(), entity.getBrokerIp(), result));
-                isMatched = false;
-            }
-            if (isMatched) {
-                needDelMap.put(entity.getBrokerId(), entity);
-            }
-        }
-        if (needDelMap.isEmpty()) {
-            return buildRetInfo(retInfo, sBuffer);
-        }
-        // do delete operation
-        for (BrokerConfEntity entry : needDelMap.values()) {
-            if (entry == null) {
-                continue;
-            }
-            if (isReservedData) {
-                Map<String, TopicDeployEntity> brokerTopicConfMap =
-                        metaDataManager.getBrokerTopicConfEntitySet(entry.getBrokerId());
-                if (brokerTopicConfMap != null) {
-                    metaDataManager.delBrokerTopicConfig(opInfoEntity.getModifyUser(),
-                            entry.getBrokerId(), sBuffer, result);
-                }
-            }
-            metaDataManager.confDelBrokerConfig(opInfoEntity.getModifyUser(),
-                    entry.getBrokerId(), sBuffer, result);
-            retInfo.add(new BrokerProcessResult(
-                    entry.getBrokerId(), entry.getBrokerIp(), result));
-        }
-        return buildRetInfo(retInfo, sBuffer);
-
-    }
-
-    /**
      * Check if the record is valid
      *
      * @param qryTopicSet
@@ -605,39 +530,34 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         ClusterSettingEntity defClusterSetting =
                 metaDataManager.getClusterDefSetting(false);
         // check and get broker configure
+        BrokerConfEntity itemEntity;
         HashMap<Integer, BrokerConfEntity> addedRecordMap = new HashMap<>();
         for (int j = 0; j < brokerJsonArray.size(); j++) {
             Map<String, String> brokerObject = brokerJsonArray.get(j);
             // check and get operation info
             if (!WebParameterUtils.getAUDBaseInfo(brokerObject,
-                    isAddOp, defOpEntity, result)) {
+                    isAddOp, defOpEntity, sBuffer, result)) {
                 return result.isSuccess();
             }
             BaseEntity itemOpEntity = (BaseEntity) result.getRetData();
-            // get brokerIp and brokerId field
-            if (!getBrokerIpAndIdParamValue(brokerObject, sBuffer, result)) {
-                return result.isSuccess();
-            }
-            Tuple2<Integer, String> brokerIdAndIpTuple =
-                    (Tuple2<Integer, String>) result.getRetData();
             // get brokerPort field
             if (!WebParameterUtils.getIntParamValue(brokerObject, WebFieldDef.BROKERPORT,
                     false, (isAddOp ? defClusterSetting.getBrokerPort()
-                            : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                            : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
                 return result.isSuccess();
             }
             int brokerPort = (int) result.getRetData();
             // get brokerTlsPort field
             if (!WebParameterUtils.getIntParamValue(brokerObject, WebFieldDef.BROKERTLSPORT,
                     false, (isAddOp ? defClusterSetting.getBrokerTLSPort()
-                            : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                            : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
                 return result.isSuccess();
             }
             int brokerTlsPort = (int) result.getRetData();
             // get brokerWebPort field
             if (!WebParameterUtils.getIntParamValue(brokerObject, WebFieldDef.BROKERWEBPORT,
                     false, (isAddOp ? defClusterSetting.getBrokerWebPort()
-                            : TBaseConstants.META_VALUE_UNDEFINED), 1, result)) {
+                            : TBaseConstants.META_VALUE_UNDEFINED), 1, sBuffer, result)) {
                 return result.isSuccess();
             }
             int brokerWebPort = (int) result.getRetData();
@@ -645,7 +565,7 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
             if (!WebParameterUtils.getIntParamValue(brokerObject, WebFieldDef.REGIONID,
                     false, (isAddOp ? TServerConstants.BROKER_REGION_ID_DEF
                             : TBaseConstants.META_VALUE_UNDEFINED),
-                    TServerConstants.BROKER_REGION_ID_MIN, result)) {
+                    TServerConstants.BROKER_REGION_ID_MIN, sBuffer, result)) {
                 return result.isSuccess();
             }
             int regionId = (int) result.getRetData();
@@ -653,24 +573,46 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
             if (!WebParameterUtils.getIntParamValue(brokerObject, WebFieldDef.GROUPID,
                     false, (isAddOp ? TServerConstants.BROKER_GROUP_ID_DEF
                             : TBaseConstants.META_VALUE_UNDEFINED),
-                    TServerConstants.BROKER_GROUP_ID_MIN, result)) {
+                    TServerConstants.BROKER_GROUP_ID_MIN, sBuffer, result)) {
                 return result.isSuccess();
             }
             int groupId = (int) result.getRetData();
             // get and valid TopicPropGroup info
             if (!WebParameterUtils.getTopicPropInfo(brokerObject,
-                    (isAddOp ? defClusterSetting.getClsDefTopicProps() : null), result)) {
+                    (isAddOp ? defClusterSetting.getClsDefTopicProps() : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             TopicPropGroup brokerProps = (TopicPropGroup) result.getRetData();
-            // manageStatusId
-            ManageStatus manageStatus = ManageStatus.STATUS_MANAGE_APPLY;
-            BrokerConfEntity entity =
-                    new BrokerConfEntity(itemOpEntity,
-                            brokerIdAndIpTuple.getF0(), brokerIdAndIpTuple.getF1());
-            entity.updModifyInfo(itemOpEntity.getDataVerId(), brokerPort, brokerTlsPort,
-                    brokerWebPort, regionId, groupId, manageStatus, brokerProps);
-            addedRecordMap.put(entity.getBrokerId(), entity);
+            // get and valid broker manage status info
+            if (!getManageStatusParamValue(isAddOp, brokerObject, sBuffer, result)) {
+                return result.isSuccess();
+            }
+            ManageStatus mngStatus = (ManageStatus) result.getRetData();
+            if (isAddOp) {
+                // get brokerIp and brokerId field
+                if (!getBrokerIpAndIdParamValue(brokerObject, sBuffer, result)) {
+                    return result.isSuccess();
+                }
+                Tuple2<Integer, String> brokerIdAndIpTuple =
+                        (Tuple2<Integer, String>) result.getRetData();
+                // buid new record
+                itemEntity = new BrokerConfEntity(itemOpEntity,
+                        brokerIdAndIpTuple.getF0(), brokerIdAndIpTuple.getF1());
+                itemEntity.updModifyInfo(itemOpEntity.getDataVerId(), brokerPort, brokerTlsPort,
+                        brokerWebPort, regionId, groupId, mngStatus, brokerProps);
+                addedRecordMap.put(itemEntity.getBrokerId(), itemEntity);
+            } else {
+                // check and get brokerId field
+                if (!WebParameterUtils.getIntParamValue(brokerObject,
+                        WebFieldDef.BROKERID, true, sBuffer, result)) {
+                    return result.isSuccess();
+                }
+                Integer brokerId = (Integer) result.retData1;
+                itemEntity = new BrokerConfEntity(itemOpEntity, brokerId, "");
+                itemEntity.updModifyInfo(itemOpEntity.getDataVerId(), brokerPort, brokerTlsPort,
+                        brokerWebPort, regionId, groupId, mngStatus, brokerProps);
+                addedRecordMap.put(itemEntity.getBrokerId(), itemEntity);
+            }
         }
         // check result
         if (addedRecordMap.isEmpty()) {
@@ -703,46 +645,22 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         return sBuilder;
     }
 
-    private boolean getBrokerIpAndIdParamValue(HttpServletRequest req,
-                                               StringBuilder sBuffer,
-                                               ProcessResult result) {
+    private <T> boolean getBrokerIpAndIdParamValue(T paramCntr,
+                                                   StringBuilder sBuffer,
+                                                   ProcessResult result) {
         // get brokerIp
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.BROKERIP, true, null, result)) {
+        if (!WebParameterUtils.getStringParamValue(paramCntr,
+                WebFieldDef.BROKERIP, true, null, sBuffer, result)) {
             return result.success;
         }
         String brokerIp = (String) result.retData1;
         // get brokerId
-        if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.BROKERID, true, 0, 0, result)) {
+        if (!WebParameterUtils.getIntParamValue(paramCntr,
+                WebFieldDef.BROKERID, true, 0, 0, sBuffer, result)) {
             return result.success;
         }
         int brokerId = (int) result.getRetData();
-        return validBrokerIdAndIpValues(brokerId, brokerIp, sBuffer, result);
-    }
-
-    private boolean getBrokerIpAndIdParamValue(Map<String, String> keyValueMap,
-                                               StringBuilder sBuffer,
-                                               ProcessResult result) {
-        // get brokerIp
-        if (!WebParameterUtils.getStringParamValue(keyValueMap,
-                WebFieldDef.BROKERIP, true, null, result)) {
-            return result.success;
-        }
-        String brokerIp = (String) result.retData1;
-        // get brokerId
-        if (!WebParameterUtils.getIntParamValue(keyValueMap,
-                WebFieldDef.BROKERID, true, 0, 0, result)) {
-            return result.success;
-        }
-        int brokerId = (int) result.getRetData();
-        return validBrokerIdAndIpValues(brokerId, brokerIp, sBuffer, result);
-    }
-
-
-    private boolean validBrokerIdAndIpValues(int brokerId, String brokerIp,
-                                             StringBuilder sBuffer,
-                                             ProcessResult result) {
+        // valid brokerIp and brokerId
         if (brokerId <= 0) {
             try {
                 brokerId = abs(AddressUtils.ipToInt(brokerIp));
@@ -778,4 +696,29 @@ public class WebBrokerConfHandler extends AbstractWebHandler {
         return result.isSuccess();
     }
 
+    private <T> boolean getManageStatusParamValue(boolean isAddOp, T paramCntr,
+                                                  StringBuilder sBuffer,
+                                                  ProcessResult result) {
+        // get manage status id value
+        if (!WebParameterUtils.getIntParamValue(paramCntr,
+                WebFieldDef.MANAGESTATUS, false,
+                (isAddOp ? ManageStatus.STATUS_MANAGE_APPLY.getCode()
+                        : ManageStatus.STATUS_MANAGE_UNDEFINED.getCode()),
+                ManageStatus.STATUS_MANAGE_APPLY.getCode(),
+                ManageStatus.STATUS_MANAGE_OFFLINE.getCode(), sBuffer, result)) {
+            return result.success;
+        }
+        int manageStatusId = (int) result.retData1;
+        try {
+            ManageStatus mngStatus = ManageStatus.valueOf(manageStatusId);
+            result.setSuccResult(mngStatus);
+        } catch (Throwable e) {
+            result.setFailResult(DataOpErrCode.DERR_ILLEGAL_VALUE.getCode(),
+                    sBuffer.append("Illegal ").append(WebFieldDef.MANAGESTATUS.name)
+                            .append(" parameter value :").append(e.getMessage()).toString());
+            sBuffer.delete(0, sBuffer.length());
+        }
+        return result.isSuccess();
+    }
+
 }
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
index 8137ddd..59ab5db 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebBrokerTopicConfHandler.java
@@ -731,34 +731,34 @@ public class WebBrokerTopicConfHandler extends AbstractWebHandler {
      */
     public StringBuilder adminQuerySimpleTopicName(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder strBuffer = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
-            WebParameterUtils.buildFailResult(strBuffer, result.errInfo);
-            return strBuffer;
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<Integer> brokerIds = (Set<Integer>) result.retData1;
-        strBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\",\"data\":[");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\",\"data\":[");
         Map<Integer, Set<String>> brokerTopicConfigMap =
                 brokerConfManager.getBrokerTopicConfigInfo(brokerIds);
         int dataCount = 0;
         for (Map.Entry<Integer, Set<String>> entry : brokerTopicConfigMap.entrySet()) {
             if (dataCount++ > 0) {
-                strBuffer.append(",");
+                sBuffer.append(",");
             }
-            strBuffer.append("{\"brokerId\":").append(entry.getKey()).append(",\"topicName\":[");
+            sBuffer.append("{\"brokerId\":").append(entry.getKey()).append(",\"topicName\":[");
             int topicCnt = 0;
             Set<String> topicSet = entry.getValue();
             for (String topic : topicSet) {
                 if (topicCnt++ > 0) {
-                    strBuffer.append(",");
+                    sBuffer.append(",");
                 }
-                strBuffer.append("\"").append(topic).append("\"");
+                sBuffer.append("\"").append(topic).append("\"");
             }
-            strBuffer.append("],\"topicCount\":").append(topicCnt).append("}");
+            sBuffer.append("],\"topicCount\":").append(topicCnt).append("}");
         }
-        strBuffer.append("],\"dataCount\":").append(dataCount).append("}");
-        return strBuffer;
+        sBuffer.append("],\"dataCount\":").append(dataCount).append("}");
+        return sBuffer;
     }
 
     /**
@@ -769,51 +769,51 @@ public class WebBrokerTopicConfHandler extends AbstractWebHandler {
      */
     public StringBuilder adminQuerySimpleBrokerId(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder strBuffer = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(strBuffer, result.errInfo);
-            return strBuffer;
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.WITHIP, false, false, result)) {
-            WebParameterUtils.buildFailResult(strBuffer, result.errInfo);
-            return strBuffer;
+                WebFieldDef.WITHIP, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         boolean withIp = (Boolean) result.retData1;
         // return result;
-        strBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\",\"data\":[");
+        sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\",\"data\":[");
         Map<String, Map<Integer, String>> opicBrokerConfigMap =
                 brokerConfManager.getTopicBrokerConfigInfo(topicNameSet);
         int dataCount = 0;
         for (Map.Entry<String, Map<Integer, String>> entry : opicBrokerConfigMap.entrySet()) {
             if (dataCount++ > 0) {
-                strBuffer.append(",");
+                sBuffer.append(",");
             }
-            strBuffer.append("{\"topicName\":\"").append(entry.getKey()).append("\",\"brokerInfo\":[");
+            sBuffer.append("{\"topicName\":\"").append(entry.getKey()).append("\",\"brokerInfo\":[");
             int topicCnt = 0;
             Map<Integer, String> brokerMap = entry.getValue();
             if (withIp) {
                 for (Map.Entry<Integer, String> entry1 : brokerMap.entrySet()) {
                     if (topicCnt++ > 0) {
-                        strBuffer.append(",");
+                        sBuffer.append(",");
                     }
-                    strBuffer.append("{\"brokerId\":").append(entry1.getKey())
+                    sBuffer.append("{\"brokerId\":").append(entry1.getKey())
                             .append(",\"brokerIp\":\"").append(entry1.getValue()).append("\"}");
                 }
             } else {
                 for (Map.Entry<Integer, String> entry1 : brokerMap.entrySet()) {
                     if (topicCnt++ > 0) {
-                        strBuffer.append(",");
+                        sBuffer.append(",");
                     }
-                    strBuffer.append(entry1.getKey());
+                    sBuffer.append(entry1.getKey());
                 }
             }
-            strBuffer.append("],\"brokerCnt\":").append(topicCnt).append("}");
+            sBuffer.append("],\"brokerCnt\":").append(topicCnt).append("}");
         }
-        strBuffer.append("],\"dataCount\":").append(dataCount).append("}");
-        return strBuffer;
+        sBuffer.append("],\"dataCount\":").append(dataCount).append("}");
+        return sBuffer;
     }
 
     /**
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
index d896ab2..621ad5d 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
@@ -72,40 +72,40 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         // build query entity
         GroupConsumeCtrlEntity qryEntity = new GroupConsumeCtrlEntity();
         // get queried operation info, for createUser, modifyUser, dataVersionId
-        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, result)) {
+        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, false, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> groupSet = (Set<String>) result.retData1;
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // get consumeEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.CONSUMEENABLE, false, null, result)) {
+                WebFieldDef.CONSUMEENABLE, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean consumeEnable = (Boolean) result.retData1;
         // get filterEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.FILTERENABLE, false, null, result)) {
+                WebFieldDef.FILTERENABLE, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean filterEnable = (Boolean) result.retData1;
         // get filterConds info
-        if (!WebParameterUtils.getFilterCondSet(req, false, true, result)) {
+        if (!WebParameterUtils.getFilterCondSet(req, false, true, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -188,26 +188,26 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // get groupName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> groupNameSet = (Set<String>) result.retData1;
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -226,53 +226,56 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         BaseEntity opInfoEntity = (BaseEntity) result.getRetData();
         // check and get topicName field
         if (!WebParameterUtils.getAndValidTopicNameInfo(req,
-                metaDataManager, true, null, result)) {
+                metaDataManager, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // get groupName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> groupNameSet = (Set<String>) result.retData1;
         // get consumeEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.CONSUMEENABLE, false, (isAddOp ? true : null), result)) {
+                WebFieldDef.CONSUMEENABLE, false,
+                (isAddOp ? true : null), sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean consumeEnable = (Boolean) result.retData1;
         // get disableReason list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.REASON, false, (isAddOp ? "" : null), result)) {
+                WebFieldDef.REASON, false,
+                (isAddOp ? "" : null), sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         String disableRsn = (String) result.retData1;
         // get filterEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.FILTERENABLE, false, (isAddOp ? false : null), result)) {
+                WebFieldDef.FILTERENABLE, false,
+                (isAddOp ? false : null), sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Boolean filterEnable = (Boolean) result.retData1;
         // get filterConds info
-        if (!WebParameterUtils.getFilterCondString(req, false, isAddOp, result)) {
+        if (!WebParameterUtils.getFilterCondString(req, false, isAddOp, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -295,12 +298,12 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -360,12 +363,12 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         for (int j = 0; j < filterJsonArray.size(); j++) {
             itemsMap = filterJsonArray.get(j);
             if (!WebParameterUtils.getStringParamValue(itemsMap,
-                    WebFieldDef.GROUPNAME, true, "", result)) {
+                    WebFieldDef.GROUPNAME, true, "", sBuffer, result)) {
                 return result.success;
             }
             String groupName = (String) result.retData1;
             if (!WebParameterUtils.getStringParamValue(itemsMap,
-                    WebFieldDef.TOPICNAME, true, "", result)) {
+                    WebFieldDef.TOPICNAME, true, "", sBuffer, result)) {
                 return result.success;
             }
             String topicName = (String) result.retData1;
@@ -379,25 +382,27 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
             }
             // get consumeEnable info
             if (!WebParameterUtils.getBooleanParamValue(itemsMap,
-                    WebFieldDef.CONSUMEENABLE, false, (isAddOp ? true : null), result)) {
+                    WebFieldDef.CONSUMEENABLE, false,
+                    (isAddOp ? true : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean consumeEnable = (Boolean) result.retData1;
             // get disableReason list
             if (!WebParameterUtils.getStringParamValue(itemsMap,
-                    WebFieldDef.REASON, false, (isAddOp ? "" : null), result)) {
+                    WebFieldDef.REASON, false, (isAddOp ? "" : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             String disableRsn = (String) result.retData1;
             // get filterEnable info
             if (!WebParameterUtils.getBooleanParamValue(itemsMap,
-                    WebFieldDef.FILTERENABLE, false, (isAddOp ? false : null), result)) {
+                    WebFieldDef.FILTERENABLE, false,
+                    (isAddOp ? false : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean filterEnable = (Boolean) result.retData1;
             // get filterConds info
             if (!WebParameterUtils.getFilterCondString(
-                    itemsMap, false, isAddOp, result)) {
+                    itemsMap, false, isAddOp, sBuffer, result)) {
                 return result.isSuccess();
             }
             String filterCondStr = (String) result.retData1;
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupResCtrlHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupResCtrlHandler.java
index 9bf0f6d..4fd3470 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupResCtrlHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebGroupResCtrlHandler.java
@@ -67,48 +67,48 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
      */
     public StringBuilder adminQueryGroupResCtrlConf(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // build query entity
         GroupResCtrlEntity entity = new GroupResCtrlEntity();
         // get queried operation info, for createUser, modifyUser, dataVersionId
-        if (!WebParameterUtils.getQueriedOperateInfo(req, entity, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getQueriedOperateInfo(req, entity, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSGROUPNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> inGroupSet = (Set<String>) result.retData1;
         // get consumeEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.CONSUMEENABLE, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.CONSUMEENABLE, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean consumeEnable = (Boolean) result.retData1;
         // get resCheckStatus info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.RESCHECKENABLE, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.RESCHECKENABLE, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean resCheckEnable = (Boolean) result.retData1;
         // get and valid qryPriorityId info
         if (!WebParameterUtils.getQryPriorityIdParameter(req,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.QRY_PRIORITY_MIN_VALUE, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TServerConstants.QRY_PRIORITY_MIN_VALUE, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inQryPriorityId = (int) result.retData1;
         // get flowCtrlEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.FLOWCTRLENABLE, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.FLOWCTRLENABLE, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean flowCtrlEnable = (Boolean) result.retData1;
         entity.updModifyInfo(entity.getDataVerId(), consumeEnable, null,
@@ -118,18 +118,18 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
                 metaDataManager.confGetGroupResCtrlConf(inGroupSet, entity);
         // build return result
         int totalCnt = 0;
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         for (GroupResCtrlEntity resCtrlEntity : groupResCtrlEntityMap.values()) {
             if (resCtrlEntity == null) {
                 continue;
             }
             if (totalCnt++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
-            sBuilder = entity.toWebJsonStr(sBuilder, true, true);
+            sBuffer = entity.toWebJsonStr(sBuffer, true, true);
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, totalCnt);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCnt);
+        return sBuffer;
     }
 
     /**
@@ -180,84 +180,84 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
      */
     public StringBuilder adminDelGroupResCtrlConf(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         // delete group resource record
         List<GroupProcessResult> retInfo =
                 metaDataManager.delGroupResCtrlConf(opEntity.getModifyUser(),
-                        batchGroupNames, sBuilder, result);
-        return buildRetInfo(retInfo, sBuilder);
+                        batchGroupNames, sBuffer, result);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     private StringBuilder innAddOrUpdGroupResCtrlConf(HttpServletRequest req,
                                                       boolean isAddOp) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSGROUPNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> batchGroupNames = (Set<String>) result.retData1;
         // get consumeEnable info
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.CONSUMEENABLE, false, (isAddOp ? true : null), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getBooleanParamValue(req, WebFieldDef.CONSUMEENABLE,
+                false, (isAddOp ? true : null), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean consumeEnable = (Boolean) result.retData1;
         // get disableReason info
-        if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.REASON, false, (isAddOp ? "" : null), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getStringParamValue(req, WebFieldDef.REASON,
+                false, (isAddOp ? "" : null), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String disableRsn = (String) result.retData1;
         // get resCheckStatus info
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.RESCHECKENABLE, false, (isAddOp ? false : null), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getBooleanParamValue(req, WebFieldDef.RESCHECKENABLE,
+                false, (isAddOp ? false : null), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean resCheckEnable = (Boolean) result.retData1;
         // get and valid allowedBrokerClientRate info
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.ALWDBCRATE,
                 false, (isAddOp ? TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN
                         : TBaseConstants.META_VALUE_UNDEFINED),
-                TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int allowedBClientRate = (int) result.retData1;
         // get def cluster setting info
@@ -267,24 +267,24 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
         if (!WebParameterUtils.getQryPriorityIdParameter(req,
                 false, (isAddOp ? defClusterSetting.getQryPriorityId()
                         : TBaseConstants.META_VALUE_UNDEFINED),
-                TServerConstants.QRY_PRIORITY_MIN_VALUE, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TServerConstants.QRY_PRIORITY_MIN_VALUE, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int qryPriorityId = (int) result.retData1;
         // get flowCtrlEnable info
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.FLOWCTRLENABLE, false, (isAddOp ? false : null), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getBooleanParamValue(req, WebFieldDef.FLOWCTRLENABLE,
+                false, (isAddOp ? false : null), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean flowCtrlEnable = (Boolean) result.retData1;
         // get and flow control rule info
         int flowRuleCnt = WebParameterUtils.getAndCheckFlowRules(req,
-                (isAddOp ? TServerConstants.BLANK_FLOWCTRL_RULES : null), result);
+                (isAddOp ? TServerConstants.BLANK_FLOWCTRL_RULES : null), sBuffer, result);
         if (!result.success) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String flowCtrlInfo = (String) result.retData1;
         // add group resource record
@@ -293,33 +293,33 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
         for (String groupName : batchGroupNames) {
             retItem = metaDataManager.addOrUpdGroupResCtrlConf(isAddOp, opEntity, groupName,
                     consumeEnable, disableRsn, resCheckEnable, allowedBClientRate,
-                    qryPriorityId, flowCtrlEnable, flowRuleCnt, flowCtrlInfo, sBuilder, result);
+                    qryPriorityId, flowCtrlEnable, flowRuleCnt, flowCtrlInfo, sBuffer, result);
             retInfo.add(retItem);
         }
-        return buildRetInfo(retInfo, sBuilder);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
 
     private StringBuilder innBatchAddOrUpdGroupResCtrlConf(HttpServletRequest req,
                                                            boolean isAddOp) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity defOpEntity = (BaseEntity) result.getRetData();
         // get group resource control json record
-        if (!getGroupResCtrlJsonSetInfo(req, isAddOp, defOpEntity, sBuilder, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getGroupResCtrlJsonSetInfo(req, isAddOp, defOpEntity, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Map<String, GroupResCtrlEntity> addRecordMap =
                 (Map<String, GroupResCtrlEntity>) result.getRetData();
@@ -327,13 +327,13 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
         List<GroupProcessResult> retInfo = new ArrayList<>();
         for (GroupResCtrlEntity newResCtrlEntity : addRecordMap.values()) {
             retInfo.add(metaDataManager.addOrUpdGroupResCtrlConf(
-                    isAddOp, newResCtrlEntity, sBuilder, result));
+                    isAddOp, newResCtrlEntity, sBuffer, result));
         }
-        return buildRetInfo(retInfo, sBuilder);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     private boolean getGroupResCtrlJsonSetInfo(HttpServletRequest req, boolean isAddOp,
-                                               BaseEntity defOpEntity, StringBuilder sBuilder,
+                                               BaseEntity defOpEntity, StringBuilder sBuffer,
                                                ProcessResult result) {
         if (!WebParameterUtils.getJsonArrayParamValue(req,
                 WebFieldDef.GROUPRESCTRLSET, true, null, result)) {
@@ -353,31 +353,31 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
             itemValueMap = ctrlJsonArray.get(j);
             // check and get operation info
             if (!WebParameterUtils.getAUDBaseInfo(itemValueMap,
-                    isAddOp, defOpEntity, result)) {
+                    isAddOp, defOpEntity, sBuffer, result)) {
                 return result.isSuccess();
             }
             BaseEntity itemOpEntity = (BaseEntity) result.getRetData();
             // get group configure info
             if (!WebParameterUtils.getStringParamValue(itemValueMap,
-                    WebFieldDef.GROUPNAME, true, "", result)) {
+                    WebFieldDef.GROUPNAME, true, "", sBuffer, result)) {
                 return result.success;
             }
             String groupName = (String) result.retData1;
             // get consumeEnable info
-            if (!WebParameterUtils.getBooleanParamValue(itemValueMap,
-                    WebFieldDef.CONSUMEENABLE, false, (isAddOp ? true : null), result)) {
+            if (!WebParameterUtils.getBooleanParamValue(itemValueMap, WebFieldDef.CONSUMEENABLE,
+                    false, (isAddOp ? true : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean consumeEnable = (Boolean) result.retData1;
             // get disableReason info
             if (!WebParameterUtils.getStringParamValue(itemValueMap,
-                    WebFieldDef.REASON, false, (isAddOp ? "" : null), result)) {
+                    WebFieldDef.REASON, false, (isAddOp ? "" : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             String disableRsn = (String) result.retData1;
             // get resCheckStatus info
-            if (!WebParameterUtils.getBooleanParamValue(itemValueMap,
-                    WebFieldDef.RESCHECKENABLE, false, (isAddOp ? false : null), result)) {
+            if (!WebParameterUtils.getBooleanParamValue(itemValueMap, WebFieldDef.RESCHECKENABLE,
+                    false, (isAddOp ? false : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean resCheckEnable = (Boolean) result.retData1;
@@ -385,7 +385,7 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
             if (!WebParameterUtils.getIntParamValue(itemValueMap, WebFieldDef.ALWDBCRATE,
                     false, (isAddOp ? TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN
                             : TBaseConstants.META_VALUE_UNDEFINED),
-                    TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN, result)) {
+                    TServerConstants.GROUP_BROKER_CLIENT_RATE_MIN, sBuffer, result)) {
                 return result.isSuccess();
             }
             int allowedBClientRate = (int) result.retData1;
@@ -394,20 +394,20 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
             if (!WebParameterUtils.getQryPriorityIdParameter(itemValueMap,
                     false, (isAddOp ? defClusterSetting.getQryPriorityId()
                             : TBaseConstants.META_VALUE_UNDEFINED),
-                    TServerConstants.QRY_PRIORITY_MIN_VALUE, result)) {
+                    TServerConstants.QRY_PRIORITY_MIN_VALUE, sBuffer, result)) {
                 return result.isSuccess();
             }
             int qryPriorityId = (int) result.retData1;
             // get flowCtrlEnable info
             if (!WebParameterUtils.getBooleanParamValue(itemValueMap,
                     WebFieldDef.FLOWCTRLENABLE, false,
-                    (isAddOp ? false : null), result)) {
+                    (isAddOp ? false : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean flowCtrlEnable = (Boolean) result.retData1;
             // get and flow control rule info
             int flowRuleCnt = WebParameterUtils.getAndCheckFlowRules(itemValueMap,
-                    (isAddOp ? TServerConstants.BLANK_FLOWCTRL_RULES : null), result);
+                    (isAddOp ? TServerConstants.BLANK_FLOWCTRL_RULES : null), sBuffer, result);
             if (!result.success) {
                 return result.isSuccess();
             }
@@ -421,11 +421,11 @@ public class WebGroupResCtrlHandler extends AbstractWebHandler {
         }
         // check result
         if (addRecordMap.isEmpty()) {
-            result.setFailResult(sBuilder
+            result.setFailResult(sBuffer
                     .append("Not found record info in ")
                     .append(WebFieldDef.GROUPRESCTRLSET.name)
                     .append(" parameter!").toString());
-            sBuilder.delete(0, sBuilder.length());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         result.setSuccResult(addRecordMap);
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebMasterInfoHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebMasterInfoHandler.java
index 769ad2f..67fce58 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebMasterInfoHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebMasterInfoHandler.java
@@ -122,21 +122,21 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
      */
     public StringBuilder transferCurrentMaster(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         try {
             metaDataManager.transferMaster();
-            WebParameterUtils.buildSuccessResult(sBuilder,
+            WebParameterUtils.buildSuccessResult(sBuffer,
                     "TransferMaster method called, please wait 20 seconds!");
         } catch (Exception e2) {
-            WebParameterUtils.buildFailResult(sBuilder, e2.getMessage());
+            WebParameterUtils.buildFailResult(sBuffer, e2.getMessage());
         }
-        return sBuilder;
+        return sBuffer;
     }
 
     /**
@@ -166,17 +166,17 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
      */
     public StringBuilder adminSetClusterDefSetting(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check max message size
@@ -184,61 +184,60 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
                 WebFieldDef.MAXMSGSIZEINMB, false,
                 TBaseConstants.META_VALUE_UNDEFINED,
                 TBaseConstants.META_MIN_ALLOWED_MESSAGE_SIZE_MB,
-                TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB,
-                result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inMaxMsgSizeMB = (int) result.getRetData();
         // get broker port info
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inBrokerPort = (int) result.getRetData();
         // get broker tls port info
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERTLSPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inBrokerTlsPort = (int) result.getRetData();
         // get broker web port info
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERWEBPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inBrokerWebPort = (int) result.getRetData();
         // get and valid TopicPropGroup info
         TopicPropGroup defTopicProps = new TopicPropGroup();
         defTopicProps.fillDefaultValue();
-        if (!WebParameterUtils.getTopicPropInfo(req, defTopicProps, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getTopicPropInfo(req, defTopicProps, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         defTopicProps = (TopicPropGroup) result.getRetData();
         // get and valid qryPriorityId info
         if (!WebParameterUtils.getQryPriorityIdParameter(req,
                 false, TBaseConstants.META_VALUE_UNDEFINED,
-                TServerConstants.QRY_PRIORITY_MIN_VALUE, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TServerConstants.QRY_PRIORITY_MIN_VALUE, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         int inQryPriorityId = (int) result.retData1;
         // get flowCtrlEnable info
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.FLOWCTRLENABLE, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.FLOWCTRLENABLE, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean flowCtrlEnable = (Boolean) result.retData1;
         // get and flow control rule info
-        int flowRuleCnt = WebParameterUtils.getAndCheckFlowRules(req, null, result);
+        int flowRuleCnt = WebParameterUtils.getAndCheckFlowRules(req, null, sBuffer, result);
         if (!result.success) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         String flowCtrlInfo = (String) result.retData1;
         // add or modify record
@@ -248,31 +247,31 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
             if (!metaDataManager.addClusterDefSetting(opEntity, inBrokerPort,
                     inBrokerTlsPort, inBrokerWebPort, inMaxMsgSizeMB,
                     inQryPriorityId, flowCtrlEnable, flowRuleCnt, flowCtrlInfo,
-                    defTopicProps, sBuilder, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-                return sBuilder;
+                    defTopicProps, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+                return sBuffer;
             }
         } else {
             if (!metaDataManager.modClusterDefSetting(opEntity, inBrokerPort,
                     inBrokerTlsPort, inBrokerWebPort, inMaxMsgSizeMB,
                     inQryPriorityId, flowCtrlEnable, flowRuleCnt, flowCtrlInfo,
-                    defTopicProps, sBuilder, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-                return sBuilder;
+                    defTopicProps, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+                return sBuffer;
             }
         }
         curConf = metaDataManager.getClusterDefSetting(true);
         if (curConf == null) {
             WebParameterUtils.buildFailResultWithBlankData(
                     DataOpErrCode.DERR_UPD_NOT_EXIST.getCode(),
-                    DataOpErrCode.DERR_UPD_NOT_EXIST.getDescription(), sBuilder);
-            return sBuilder;
+                    DataOpErrCode.DERR_UPD_NOT_EXIST.getDescription(), sBuffer);
+            return sBuffer;
         }
         // build return result
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
-        curConf.toWebJsonStr(sBuilder, true, true);
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, 1);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
+        curConf.toWebJsonStr(sBuffer, true, true);
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, 1);
+        return sBuffer;
     }
 
     /**
@@ -283,19 +282,19 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
      */
     public StringBuilder adminQueryClusterTopicView(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // check and get brokerId field
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<Integer> brokerIds = (Set<Integer>) result.retData1;
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // query topic configure info
@@ -311,10 +310,10 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
         boolean isAcceptPublish = false;
         boolean isAcceptSubscribe = false;
         boolean enableAuthControl = false;
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         for (Map.Entry<String, List<TopicDeployEntity>> entry : topicConfMap.entrySet()) {
             if (totalCount++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
             brokerCount = 0;
             totalCfgNumPartCount = 0;
@@ -359,7 +358,7 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
             if (authEntity != null) {
                 enableAuthControl = authEntity.isAuthCtrlEnable();
             }
-            sBuilder.append("{\"topicName\":\"").append(entry.getKey())
+            sBuffer.append("{\"topicName\":\"").append(entry.getKey())
                     .append("\",\"totalCfgBrokerCnt\":").append(brokerCount)
                     .append(",\"totalCfgNumPart\":").append(totalCfgNumPartCount)
                     .append(",\"totalRunNumPartCount\":").append(totalRunNumPartCount)
@@ -368,8 +367,8 @@ public class WebMasterInfoHandler extends AbstractWebHandler {
                     .append(",\"enableAuthControl\":").append(enableAuthControl)
                     .append("}");
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, totalCount);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCount);
+        return sBuffer;
     }
 
 }
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebOtherInfoHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebOtherInfoHandler.java
index 214bfce..1ab168f 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebOtherInfoHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebOtherInfoHandler.java
@@ -69,26 +69,26 @@ public class WebOtherInfoHandler extends AbstractWebHandler {
      */
     public StringBuilder getSubscribeInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(1024);
+        StringBuilder sBuffer = new StringBuilder(1024);
         // get group list
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSGROUPNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSGROUPNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> inGroupNameSet = (Set<String>) result.retData1;
         if (inGroupNameSet.isEmpty()) {
             if (!WebParameterUtils.getStringParamValue(req,
-                    WebFieldDef.COMPSCONSUMEGROUP, false, null, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-                return sBuilder;
+                    WebFieldDef.COMPSCONSUMEGROUP, false, null, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+                return sBuffer;
             }
             inGroupNameSet = (Set<String>) result.retData1;
         }
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         TopicPSInfoManager topicPSInfoManager = master.getTopicPSInfoManager();
@@ -98,26 +98,26 @@ public class WebOtherInfoHandler extends AbstractWebHandler {
         int topicCnt = 0;
         Tuple2<Set<String>, Integer> queryInfo = new Tuple2<>();
         ConsumerInfoHolder consumerHolder = master.getConsumerHolder();
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         for (String group : queryGroupSet) {
             if (!consumerHolder.getGroupTopicSetAndClientCnt(group, queryInfo)) {
                 continue;
             }
             if (totalCnt++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
-            sBuilder.append("{\"consumeGroup\":\"").append(group).append("\",\"topicSet\":[");
+            sBuffer.append("{\"consumeGroup\":\"").append(group).append("\",\"topicSet\":[");
             topicCnt = 0;
             for (String tmpTopic : queryInfo.getF0()) {
                 if (topicCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(tmpTopic).append("\"");
+                sBuffer.append("\"").append(tmpTopic).append("\"");
             }
-            sBuilder.append("],\"consumerNum\":").append(queryInfo.getF1()).append("}");
+            sBuffer.append("],\"consumerNum\":").append(queryInfo.getF1()).append("}");
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, totalCnt);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCnt);
+        return sBuffer;
     }
 
     /**
@@ -129,14 +129,14 @@ public class WebOtherInfoHandler extends AbstractWebHandler {
     // #lizard forgives
     public StringBuilder getConsumeGroupDetailInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(1024);
+        StringBuilder sBuffer = new StringBuilder(1024);
         // get group name
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.GROUPNAME, true, null, result)) {
+                WebFieldDef.GROUPNAME, true, null, sBuffer, result)) {
             if (!WebParameterUtils.getStringParamValue(req,
-                    WebFieldDef.CONSUMEGROUP, true, null, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-                return sBuilder;
+                    WebFieldDef.CONSUMEGROUP, true, null, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+                return sBuffer;
             }
         }
         String strConsumeGroup = (String) result.retData1;
@@ -185,78 +185,78 @@ public class WebOtherInfoHandler extends AbstractWebHandler {
                     rebalanceCheckTime = consumerBandInfo.getCurCheckCycle();
                 }
             }
-            sBuilder.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"")
+            sBuffer.append("{\"result\":true,\"errCode\":0,\"errMsg\":\"OK\"")
                     .append(",\"count\":").append(consumerList.size()).append(",\"topicSet\":[");
             int itemCnt = 0;
             for (String topicItem : topicSet) {
                 if (itemCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(topicItem).append("\"");
+                sBuffer.append("\"").append(topicItem).append("\"");
             }
-            sBuilder.append("],\"consumeGroup\":\"").append(strConsumeGroup).append("\",\"re-rebalance\":{");
+            sBuffer.append("],\"consumeGroup\":\"").append(strConsumeGroup).append("\",\"re-rebalance\":{");
             itemCnt = 0;
             for (Map.Entry<String, NodeRebInfo> entry : nodeRebInfoMap.entrySet()) {
                 if (itemCnt++ > 0) {
-                    sBuilder.append(",");
+                    sBuffer.append(",");
                 }
-                sBuilder.append("\"").append(entry.getKey()).append("\":");
-                sBuilder = entry.getValue().toJsonString(sBuilder);
+                sBuffer.append("\"").append(entry.getKey()).append("\":");
+                sBuffer = entry.getValue().toJsonString(sBuffer);
             }
-            sBuilder.append("},\"isBandConsume\":").append(isBandConsume);
+            sBuffer.append("},\"isBandConsume\":").append(isBandConsume);
             // Append band consume info
             if (isBandConsume) {
-                sBuilder.append(",\"isNotAllocate\":").append(isNotAllocate)
+                sBuffer.append(",\"isNotAllocate\":").append(isNotAllocate)
                         .append(",\"sessionKey\":\"").append(sessionKey)
                         .append("\",\"isSelectBig\":").append(isSelectBig)
                         .append(",\"reqSourceCount\":").append(reqSourceCount)
                         .append(",\"curSourceCount\":").append(curSourceCount)
                         .append(",\"rebalanceCheckTime\":").append(rebalanceCheckTime);
             }
-            sBuilder.append(",\"rebInfo\":{");
+            sBuffer.append(",\"rebInfo\":{");
             if (rebalanceStatus == -2) {
-                sBuilder.append("\"isRebalanced\":false");
+                sBuffer.append("\"isRebalanced\":false");
             } else if (rebalanceStatus == 0) {
-                sBuilder.append("\"isRebalanced\":true,\"checkPasted\":false")
+                sBuffer.append("\"isRebalanced\":true,\"checkPasted\":false")
                         .append(",\"defBClientRate\":").append(defBClientRate)
                         .append(",\"confBClientRate\":").append(confBClientRate)
                         .append(",\"curBClientRate\":").append(curBClientRate)
                         .append(",\"minRequireClientCnt\":").append(minRequireClientCnt);
             } else {
-                sBuilder.append("\"isRebalanced\":true,\"checkPasted\":true")
+                sBuffer.append("\"isRebalanced\":true,\"checkPasted\":true")
                         .append(",\"defBClientRate\":").append(defBClientRate)
                         .append(",\"confBClientRate\":").append(confBClientRate)
                         .append(",\"curBClientRate\":").append(curBClientRate);
             }
-            sBuilder.append("},\"filterConds\":{");
+            sBuffer.append("},\"filterConds\":{");
             if (existedTopicConditions != null) {
                 int keyCount = 0;
                 for (Map.Entry<String, TreeSet<String>> entry : existedTopicConditions.entrySet()) {
                     if (keyCount++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder.append("\"").append(entry.getKey()).append("\":[");
+                    sBuffer.append("\"").append(entry.getKey()).append("\":[");
                     if (entry.getValue() != null) {
                         int itemCount = 0;
                         for (String filterCond : entry.getValue()) {
                             if (itemCount++ > 0) {
-                                sBuilder.append(",");
+                                sBuffer.append(",");
                             }
-                            sBuilder.append("\"").append(filterCond).append("\"");
+                            sBuffer.append("\"").append(filterCond).append("\"");
                         }
                     }
-                    sBuilder.append("]");
+                    sBuffer.append("]");
                 }
             }
-            sBuilder.append("}");
+            sBuffer.append("}");
             // Append consumer info of the group
-            getConsumerInfoList(consumerList, isBandConsume, sBuilder);
-            sBuilder.append("}");
+            getConsumerInfoList(consumerList, isBandConsume, sBuffer);
+            sBuffer.append("}");
         } catch (Exception e) {
-            sBuilder.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
+            sBuffer.append("{\"result\":false,\"errCode\":400,\"errMsg\":\"")
                     .append(e.getMessage()).append("\",\"count\":0,\"data\":[]}");
         }
-        return sBuilder;
+        return sBuffer;
     }
 
     /**
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicCtrlHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicCtrlHandler.java
index 55152cd..297ac0b 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicCtrlHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicCtrlHandler.java
@@ -78,13 +78,13 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         TopicCtrlEntity qryEntity = new TopicCtrlEntity();
         // get queried operation info, for createUser, modifyUser, dataVersionId
-        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, result)) {
+        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -160,19 +160,19 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -189,41 +189,41 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
 
     private StringBuilder innAddOrUpdTopicCtrlInfo(HttpServletRequest req, boolean isAddOp) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // get topicNameId info
         int topicNameId = TBaseConstants.META_VALUE_UNDEFINED;
         if (topicNameSet.size() == 1) {
             if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.TOPICNAMEID,
-                    false, TBaseConstants.META_VALUE_UNDEFINED, 0, result)) {
-                WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-                return sBuilder;
+                    false, TBaseConstants.META_VALUE_UNDEFINED, 0, sBuffer, result)) {
+                WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+                return sBuffer;
             }
             topicNameId = (int) result.getRetData();
         }
         // get authCtrlStatus info
-        if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.AUTHCTRLENABLE, false, (isAddOp ? false : null), result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getBooleanParamValue(req, WebFieldDef.AUTHCTRLENABLE,
+                false, (isAddOp ? false : null), sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Boolean enableTopicAuth = (Boolean) result.retData1;
         // check and get max message size
@@ -235,9 +235,9 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
                 WebFieldDef.MAXMSGSIZEINMB, false,
                 (isAddOp ? maxMsgSizeMB : TBaseConstants.META_VALUE_UNDEFINED),
                 TBaseConstants.META_MIN_ALLOWED_MESSAGE_SIZE_MB,
-                TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         maxMsgSizeMB = (int) result.getRetData();
         // add or update records
@@ -245,43 +245,43 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
         List<TopicProcessResult> retInfo = new ArrayList<>();
         for (String topicName : topicNameSet) {
             retInfo.add(metaDataManager.addOrUpdTopicCtrlConf(isAddOp, opEntity,
-                    topicName, topicNameId, enableTopicAuth, maxMsgSizeMB, sBuilder, result));
+                    topicName, topicNameId, enableTopicAuth, maxMsgSizeMB, sBuffer, result));
         }
-        return buildRetInfo(retInfo, sBuilder);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     private StringBuilder innBatchAddOrUpdTopicCtrlInfo(HttpServletRequest req, boolean isAddOp) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, isAddOp, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity defOpEntity = (BaseEntity) result.getRetData();
         // check and get add record map
-        if (!getTopicCtrlJsonSetInfo(req, isAddOp, defOpEntity, sBuilder, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!getTopicCtrlJsonSetInfo(req, isAddOp, defOpEntity, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Map<String, TopicCtrlEntity> addRecordMap =
                 (Map<String, TopicCtrlEntity>) result.getRetData();
         List<TopicProcessResult> retInfo = new ArrayList<>();
         for (TopicCtrlEntity topicCtrlInfo : addRecordMap.values()) {
             retInfo.add(metaDataManager.addOrUpdTopicCtrlConf(
-                    isAddOp, topicCtrlInfo, sBuilder, result));
+                    isAddOp, topicCtrlInfo, sBuffer, result));
         }
-        return buildRetInfo(retInfo, sBuilder);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     private boolean getTopicCtrlJsonSetInfo(HttpServletRequest req, boolean isAddOp,
-                                            BaseEntity defOpEntity, StringBuilder sBuilder,
+                                            BaseEntity defOpEntity, StringBuilder sBuffer,
                                             ProcessResult result) {
         if (!WebParameterUtils.getJsonArrayParamValue(req,
                 WebFieldDef.TOPICCTRLSET, true, null, result)) {
@@ -301,13 +301,13 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
             itemConfMap = ctrlJsonArray.get(j);
             // check and get operation info
             if (!WebParameterUtils.getAUDBaseInfo(itemConfMap,
-                    isAddOp, defOpEntity, result)) {
+                    isAddOp, defOpEntity, sBuffer, result)) {
                 return result.isSuccess();
             }
             BaseEntity itemOpEntity = (BaseEntity) result.getRetData();
             // get topicName configure info
             if (!WebParameterUtils.getStringParamValue(itemConfMap,
-                    WebFieldDef.TOPICNAME, true, "", result)) {
+                    WebFieldDef.TOPICNAME, true, "", sBuffer, result)) {
                 return result.success;
             }
             String topicName = (String) result.retData1;
@@ -316,20 +316,19 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
                     WebFieldDef.MAXMSGSIZEINMB, false,
                     (isAddOp ? defMaxMsgSizeMB : TBaseConstants.META_VALUE_UNDEFINED),
                     TBaseConstants.META_MIN_ALLOWED_MESSAGE_SIZE_MB,
-                    TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB, result)) {
+                    TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB, sBuffer, result)) {
                 return result.isSuccess();
             }
             int itemMaxMsgSizeMB = (int) result.getRetData();
             // get topicNameId field
             if (!WebParameterUtils.getIntParamValue(itemConfMap, WebFieldDef.TOPICNAMEID,
-                    false, TBaseConstants.META_VALUE_UNDEFINED, 0, result)) {
+                    false, TBaseConstants.META_VALUE_UNDEFINED, 0, sBuffer, result)) {
                 return result.isSuccess();
             }
             int itemTopicNameId = (int) result.getRetData();
             // get authCtrlStatus info
-            if (!WebParameterUtils.getBooleanParamValue(itemConfMap,
-                    WebFieldDef.AUTHCTRLENABLE, false,
-                    (isAddOp ? false : null), result)) {
+            if (!WebParameterUtils.getBooleanParamValue(itemConfMap, WebFieldDef.AUTHCTRLENABLE,
+                    false, (isAddOp ? false : null), sBuffer, result)) {
                 return result.isSuccess();
             }
             Boolean enableTopicAuth = (Boolean) result.retData1;
@@ -340,11 +339,11 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
         }
         // check result
         if (addRecordMap.isEmpty()) {
-            result.setFailResult(sBuilder
+            result.setFailResult(sBuffer
                     .append("Not found record info in ")
                     .append(WebFieldDef.TOPICCTRLSET.name)
                     .append(" parameter!").toString());
-            sBuilder.delete(0, sBuilder.length());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         result.setSuccResult(addRecordMap);
@@ -352,23 +351,23 @@ public class WebTopicCtrlHandler extends AbstractWebHandler {
     }
 
     private StringBuilder buildRetInfo(List<TopicProcessResult> retInfo,
-                                       StringBuilder sBuilder) {
+                                       StringBuilder sBuffer) {
         int totalCnt = 0;
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         for (TopicProcessResult entry : retInfo) {
             if (entry == null) {
                 continue;
             }
             if (totalCnt++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
-            sBuilder.append("{\"topicName\":\"").append(entry.getTopicName()).append("\"")
+            sBuffer.append("{\"topicName\":\"").append(entry.getTopicName()).append("\"")
                     .append(",\"success\":").append(entry.isSuccess())
                     .append(",\"errCode\":").append(entry.getErrCode())
                     .append(",\"errInfo\":\"").append(entry.getErrInfo()).append("\"}");
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, totalCnt);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCnt);
+        return sBuffer;
     }
 
 }
diff --git a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicDeployHandler.java b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicDeployHandler.java
index ce2cfa6..3c18ba2 100644
--- a/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicDeployHandler.java
+++ b/tubemq-server/src/main/java/org/apache/tubemq/server/master/web/handler/WebTopicDeployHandler.java
@@ -102,41 +102,40 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         TopicDeployEntity qryEntity = new TopicDeployEntity();
         // get queried operation info, for createUser, modifyUser, dataVersionId
-        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, result)) {
+        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get topicName field
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId field
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<Integer> brokerIdSet = (Set<Integer>) result.retData1;
         // get brokerPort field
         if (!WebParameterUtils.getIntParamValue(req, WebFieldDef.BROKERPORT,
-                false, TBaseConstants.META_VALUE_UNDEFINED, 1, result)) {
+                false, TBaseConstants.META_VALUE_UNDEFINED, 1, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         int brokerPort = (int) result.getRetData();
         // get and valid topicProps info
-        if (!WebParameterUtils.getTopicPropInfo(req,
-                null, result)) {
+        if (!WebParameterUtils.getTopicPropInfo(req, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         TopicPropGroup topicProps = (TopicPropGroup) result.getRetData();
         // get and valid TopicStatusId info
         if (!WebParameterUtils.getTopicStatusParamValue(req,
-                false, TopicStatus.STATUS_TOPIC_UNDEFINED, result)) {
+                false, TopicStatus.STATUS_TOPIC_UNDEFINED, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -259,14 +258,14 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         ProcessResult result = new ProcessResult();
         StringBuilder sBuffer = new StringBuilder(512);
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId field
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -353,7 +352,7 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         ProcessResult result = new ProcessResult();
         StringBuilder sBuilder = new StringBuilder(512);
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, false, result)) {
+                WebFieldDef.COMPSBROKERID, false, sBuilder, result)) {
             WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
             return sBuilder;
         }
@@ -390,51 +389,51 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
      */
     public StringBuilder adminQuerySimpleBrokerId(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, false, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         if (!WebParameterUtils.getBooleanParamValue(req,
-                WebFieldDef.WITHIP, false, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.WITHIP, false, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         boolean withIp = (Boolean) result.retData1;
         Map<String, Map<Integer, String>> topicBrokerConfigMap =
                 metaDataManager.getTopicBrokerConfigInfo(topicNameSet);
         // build query result
         int dataCount = 0;
-        WebParameterUtils.buildSuccessWithDataRetBegin(sBuilder);
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
         for (Map.Entry<String, Map<Integer, String>> entry : topicBrokerConfigMap.entrySet()) {
             if (dataCount++ > 0) {
-                sBuilder.append(",");
+                sBuffer.append(",");
             }
-            sBuilder.append("{\"topicName\":\"").append(entry.getKey()).append("\",\"brokerInfo\":[");
+            sBuffer.append("{\"topicName\":\"").append(entry.getKey()).append("\",\"brokerInfo\":[");
             int topicCnt = 0;
             Map<Integer, String> brokerMap = entry.getValue();
             if (withIp) {
                 for (Map.Entry<Integer, String> entry1 : brokerMap.entrySet()) {
                     if (topicCnt++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder.append("{\"brokerId\":").append(entry1.getKey())
+                    sBuffer.append("{\"brokerId\":").append(entry1.getKey())
                             .append(",\"brokerIp\":\"").append(entry1.getValue()).append("\"}");
                 }
             } else {
                 for (Map.Entry<Integer, String> entry1 : brokerMap.entrySet()) {
                     if (topicCnt++ > 0) {
-                        sBuilder.append(",");
+                        sBuffer.append(",");
                     }
-                    sBuilder.append(entry1.getKey());
+                    sBuffer.append(entry1.getKey());
                 }
             }
-            sBuilder.append("],\"brokerCnt\":").append(topicCnt).append("}");
+            sBuffer.append("],\"brokerCnt\":").append(topicCnt).append("}");
         }
-        WebParameterUtils.buildSuccessWithDataRetEnd(sBuilder, dataCount);
-        return sBuilder;
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, dataCount);
+        return sBuffer;
     }
 
     /**
@@ -445,38 +444,37 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
      */
     public StringBuilder adminAddTopicEntityInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, true, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId info
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, true, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<Integer> brokerIdSet = (Set<Integer>) result.retData1;
         // get and valid TopicPropGroup info
-        if (!WebParameterUtils.getTopicPropInfo(req,
-                null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getTopicPropInfo(req, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         TopicPropGroup topicPropInfo = (TopicPropGroup) result.getRetData();
         /* check max message size
@@ -486,15 +484,15 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
                 TBaseConstants.META_MIN_ALLOWED_MESSAGE_SIZE_MB,
                 TBaseConstants.META_MAX_ALLOWED_MESSAGE_SIZE_MB,
                 result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuilder;
         }
         int inMaxMsgSizeMB = (int) result.getRetData();
          */
         List<TopicProcessResult> retInfo =
                 metaDataManager.addTopicDeployInfo(opEntity, brokerIdSet,
-                        topicNameSet, topicPropInfo, sBuilder, result);
-        return buildRetInfo(retInfo, sBuilder);
+                        topicNameSet, topicPropInfo, sBuffer, result);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     /**
@@ -505,32 +503,32 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
      */
     public StringBuilder adminBatchAddTopicEntityInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, true, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity defOpEntity = (BaseEntity) result.getRetData();
         // check and get add record map
         if (!getTopicDeployJsonSetInfo(req, true,
-                defOpEntity, null, sBuilder, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                defOpEntity, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Map<String, TopicDeployEntity> addRecordMap =
                 (Map<String, TopicDeployEntity>) result.getRetData();
         List<TopicProcessResult> retInfo = new ArrayList<>();
         for (TopicDeployEntity topicDeployInfo : addRecordMap.values()) {
-            retInfo.add(metaDataManager.addTopicDeployInfo(topicDeployInfo, sBuilder, result));
+            retInfo.add(metaDataManager.addTopicDeployInfo(topicDeployInfo, sBuffer, result));
         }
-        return buildRetInfo(retInfo, sBuilder);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     /**
@@ -543,44 +541,44 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
     // #lizard forgives
     public StringBuilder adminModifyTopicEntityInfo(HttpServletRequest req) {
         ProcessResult result = new ProcessResult();
-        StringBuilder sBuilder = new StringBuilder(512);
+        StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId info
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, true, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+                WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         Set<Integer> brokerIdSet = (Set<Integer>) result.retData1;
         // get and valid TopicPropGroup info
-        if (!WebParameterUtils.getTopicPropInfo(req, null, result)) {
-            WebParameterUtils.buildFailResult(sBuilder, result.errInfo);
-            return sBuilder;
+        if (!WebParameterUtils.getTopicPropInfo(req, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
+            return sBuffer;
         }
         TopicPropGroup topicProps = (TopicPropGroup) result.getRetData();
         // modify records
         List<TopicProcessResult> retInfo =
                 metaDataManager.modTopicConfig(opEntity, brokerIdSet,
-                        topicNameSet, topicProps, sBuilder, result);
-        return buildRetInfo(retInfo, sBuilder);
+                        topicNameSet, topicProps, sBuffer, result);
+        return buildRetInfo(retInfo, sBuffer);
     }
 
     /**
@@ -618,26 +616,26 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId info
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, true, result)) {
+                WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
@@ -654,7 +652,7 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
     private boolean getTopicDeployJsonSetInfo(HttpServletRequest req, boolean isAdd,
                                               BaseEntity defOpEntity,
                                               List<Map<String, String>> defValue,
-                                              StringBuilder sBuilder,
+                                              StringBuilder sBuffer,
                                               ProcessResult result) {
         if (!WebParameterUtils.getJsonArrayParamValue(req,
                 WebFieldDef.TOPICJSONSET, true, defValue, result)) {
@@ -671,25 +669,25 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         for (int j = 0; j < deployJsonArray.size(); j++) {
             Map<String, String> confMap = deployJsonArray.get(j);
             // check and get operation info
-            if (!WebParameterUtils.getAUDBaseInfo(confMap, isAdd, defOpEntity, result)) {
+            if (!WebParameterUtils.getAUDBaseInfo(confMap, isAdd, defOpEntity, sBuffer, result)) {
                 return result.isSuccess();
             }
             BaseEntity itemOpEntity = (BaseEntity) result.getRetData();
             // get topicName configure info
             if (!WebParameterUtils.getStringParamValue(confMap,
-                    WebFieldDef.TOPICNAME, true, "", result)) {
+                    WebFieldDef.TOPICNAME, true, "", sBuffer, result)) {
                 return result.success;
             }
             String topicName = (String) result.retData1;
             // get broker configure info
-            if (!getBrokerConfInfo(confMap, sBuilder, result)) {
+            if (!getBrokerConfInfo(confMap, sBuffer, result)) {
                 return result.isSuccess();
             }
             BrokerConfEntity brokerConf =
                     (BrokerConfEntity) result.getRetData();
             // get and valid TopicPropGroup info
             if (!WebParameterUtils.getTopicPropInfo(confMap,
-                    defClusterSetting.getClsDefTopicProps(), result)) {
+                    defClusterSetting.getClsDefTopicProps(), sBuffer, result)) {
                 return result.isSuccess();
             }
             TopicPropGroup topicPropInfo = (TopicPropGroup) result.getRetData();
@@ -720,11 +718,11 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         }
         // check result
         if (addRecordMap.isEmpty()) {
-            result.setFailResult(sBuilder
+            result.setFailResult(sBuffer
                     .append("Not found record in ")
                     .append(WebFieldDef.TOPICJSONSET.name)
                     .append(" parameter!").toString());
-            sBuilder.delete(0, sBuilder.length());
+            sBuffer.delete(0, sBuffer.length());
             return result.isSuccess();
         }
         result.setSuccResult(addRecordMap);
@@ -732,10 +730,10 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
     }
 
     private boolean getBrokerConfInfo(Map<String, String> keyValueMap,
-                                      StringBuilder sBuilder, ProcessResult result) {
+                                      StringBuilder sBuffer, ProcessResult result) {
         // get brokerId
         if (!WebParameterUtils.getIntParamValue(keyValueMap,
-                WebFieldDef.BROKERID, true, 0, 0, result)) {
+                WebFieldDef.BROKERID, true, 0, 0, sBuffer, result)) {
             return result.success;
         }
         int brokerId = (int) result.getRetData();
@@ -743,7 +741,7 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
                 metaDataManager.getBrokerConfByBrokerId(brokerId);
         if (curEntity == null) {
             result.setFailResult(DataOpErrCode.DERR_NOT_EXIST.getCode(),
-                    sBuilder.append("Not found broker configure by ")
+                    sBuffer.append("Not found broker configure by ")
                             .append(WebFieldDef.BROKERID.name).append(" = ").append(brokerId)
                             .append(", please create the broker's configure first!").toString());
             return result.isSuccess();
@@ -785,26 +783,26 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         StringBuilder sBuffer = new StringBuilder(512);
         // valid operation authorize info
         if (!WebParameterUtils.validReqAuthorizeInfo(req,
-                WebFieldDef.ADMINAUTHTOKEN, true, master, result)) {
+                WebFieldDef.ADMINAUTHTOKEN, true, master, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         // check and get operation info
-        if (!WebParameterUtils.getAUDBaseInfo(req, false, result)) {
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         BaseEntity opEntity = (BaseEntity) result.getRetData();
         // check and get topicName info
         if (!WebParameterUtils.getStringParamValue(req,
-                WebFieldDef.COMPSTOPICNAME, true, null, result)) {
+                WebFieldDef.COMPSTOPICNAME, true, null, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }
         Set<String> topicNameSet = (Set<String>) result.retData1;
         // check and get brokerId info
         if (!WebParameterUtils.getIntParamValue(req,
-                WebFieldDef.COMPSBROKERID, true, result)) {
+                WebFieldDef.COMPSBROKERID, true, sBuffer, result)) {
             WebParameterUtils.buildFailResult(sBuffer, result.errInfo);
             return sBuffer;
         }