yao-wenbin commented on code in PR #7217:
URL: https://github.com/apache/rocketmq/pull/7217#discussion_r1301067843


##########
common/src/main/java/org/apache/rocketmq/common/MixAll.java:
##########
@@ -518,4 +520,25 @@ public static boolean 
isSysConsumerGroupForNoColdReadLimit(String consumerGroup)
         }
         return false;
     }
+
+    public static Set<String> invalidProperties(Properties properties, 
Object... objects) {
+        if (objects == null || objects.length == 0) {
+            return null;
+        }
+        Set<String> propertyNames = properties.stringPropertyNames();
+
+        Set<String> fieldNames = new HashSet<>();
+        for (Object obj : objects) {
+            Method[] methods = obj.getClass().getMethods();
+            for (Method method : methods) {
+                String mn = method.getName();
+                if (mn.startsWith("get")) {
+                    // get getter's field name and to camel name.
+                    fieldNames.add(mn.substring(3, 4).toLowerCase() +  
mn.substring(4));
+                }
+            }
+        }
+
+        return Sets.difference(propertyNames, fieldNames);

Review Comment:
   I'm a little confused. The difference method  only return a set of property 
in property name set (which is user configure) but not in field names set 
(which is RocketMQ Configuration Item). So I think it will correctly record the 
invalid property name set in user's configuration file.
   I have some test case in ``MixAllTest.java``, It would be  better explain 
that when logging will be missed if you could give me some clearly test case.~



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to