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

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new 02e277045af [MINOR] Time generator defaults to sleeping for 200ms even 
with in-process lock provider (#13183)
02e277045af is described below

commit 02e277045af713333aac1f4930908fcb4bc996cd
Author: Tim Brown <[email protected]>
AuthorDate: Sun Apr 20 18:17:32 2025 -0500

    [MINOR] Time generator defaults to sleeping for 200ms even with in-process 
lock provider (#13183)
---
 .../apache/hudi/common/config/HoodieConfig.java    |  2 +-
 .../common/config/HoodieTimeGeneratorConfig.java   |  3 +-
 .../config/TestHoodieTimeGeneratorConfig.java      | 48 ++++++++++++++++++++++
 3 files changed, 50 insertions(+), 3 deletions(-)

diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
index 3dbefc96689..5bc47839f93 100644
--- a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
+++ b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
@@ -113,7 +113,7 @@ public class HoodieConfig implements Serializable {
     }
   }
 
-  public Boolean contains(String key) {
+  public boolean contains(String key) {
     return props.containsKey(key);
   }
 
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
index 1dce6f71c09..a5024917529 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
@@ -132,11 +132,10 @@ public class HoodieTimeGeneratorConfig extends 
HoodieConfig {
     }
 
     public HoodieTimeGeneratorConfig build() {
-      
timeGeneratorConfig.setDefaults(HoodieTimeGeneratorConfig.class.getName());
-
       if (!timeGeneratorConfig.contains(LOCK_PROVIDER_KEY)) {
         timeGeneratorConfig.setValue(LOCK_PROVIDER_KEY, DEFAULT_LOCK_PROVIDER);
       }
+      
timeGeneratorConfig.setDefaults(HoodieTimeGeneratorConfig.class.getName());
       return timeGeneratorConfig;
     }
   }
diff --git 
a/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
 
b/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
new file mode 100644
index 00000000000..c6e824c1772
--- /dev/null
+++ 
b/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.hudi.common.config;
+
+import org.apache.hudi.common.util.StringUtils;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+
+import static org.apache.hudi.common.config.HoodieCommonConfig.BASE_PATH;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class TestHoodieTimeGeneratorConfig {
+
+  @ParameterizedTest
+  @CsvSource(value = {
+      "org.apache.hudi.client.transaction.lock.InProcessLockProvider,1",
+      "org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider,200",
+      ",1",
+      "any_string,200"
+  })
+  void testMaxSkewDefaults(String lockProvider, long expected) {
+    TypedProperties properties = new TypedProperties();
+    properties.setProperty(BASE_PATH.key(), "/tmp/path");
+    if (!StringUtils.isNullOrEmpty(lockProvider)) {
+      properties.setProperty(HoodieTimeGeneratorConfig.LOCK_PROVIDER_KEY, 
lockProvider);
+    }
+    HoodieTimeGeneratorConfig config = 
HoodieTimeGeneratorConfig.newBuilder().fromProperties(properties).build();
+    assertEquals(expected, config.getMaxExpectedClockSkewMs());
+  }
+}

Reply via email to