Copilot commented on code in PR #12148:
URL: https://github.com/apache/gravitino/pull/12148#discussion_r3627250471


##########
core/src/main/java/org/apache/gravitino/catalog/CapabilityHelpers.java:
##########
@@ -500,23 +501,34 @@ private static Column applyCapabilities(Column column, 
Capability capabilities)
 
   private static String applyCapabilitiesOnName(
       Capability.Scope scope, String name, Capability capabilities) {
-    String standardizeName = applyCaseSensitiveOnName(scope, name, 
capabilities);
-    applyNameSpecification(scope, standardizeName, capabilities);
-    return standardizeName;
+    applyNameSpecification(scope, name, capabilities);
+    return applyCaseSensitiveOnName(scope, name, capabilities);
   }
 
   public static String applyCaseSensitiveOnName(
       Capability.Scope scope, String name, Capability capabilities) {
-    return capabilities.caseSensitiveOnName(scope).supported() ? name : 
name.toLowerCase();
+    if (name == null) {
+      return null;
+    }
+    String normalizedName = capabilities.normalizeName(scope, name);
+    if (normalizedName == null) {
+      throw new IllegalArgumentException(
+          String.format(
+              "Capability.normalizeName(%s, %s) must not return null for a 
non-null name",
+              scope, name));
+    }
+    return normalizedName;
   }
 
   private static String[] applyCaseSensitiveOnColumnName(String[] name, 
Capability capabilities) {
-    if 
(!capabilities.caseSensitiveOnName(Capability.Scope.COLUMN).supported()) {
-      String[] standardizeColumnName = Arrays.copyOf(name, name.length);
-      standardizeColumnName[0] = name[0].toLowerCase();
-      return standardizeColumnName;
+    String normalizedFirstName =
+        applyCaseSensitiveOnName(Capability.Scope.COLUMN, name[0], 
capabilities);
+    if (normalizedFirstName.equals(name[0])) {
+      return name;

Review Comment:
   applyCaseSensitiveOnColumnName can throw a NullPointerException when the 
first field name is null: applyCaseSensitiveOnName returns null, then 
normalizedFirstName.equals(name[0]) dereferences null. Even if null column 
names are invalid, this should fail deterministically (or behave as a no-op as 
before) rather than NPE.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to