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

opwvhk pushed a commit to branch branch-1.12
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.12 by this push:
     new 33ad0821a1 AVRO-4159 [Java]: complete support for duration (#3416)
33ad0821a1 is described below

commit 33ad0821a17dde0cda18164eb82c0a02e5fda3b3
Author: Oscar Westra van Holthe - Kind <[email protected]>
AuthorDate: Fri Jun 27 23:35:03 2025 +0200

    AVRO-4159 [Java]: complete support for duration (#3416)
    
    * AVRO-4159: Add duration logical type to switch statement
    
    * AVRO-4159: Improve TimePeriod javadoc
    
    * AVRO-4159: Also test for support by type name
    
    (cherry picked from commit 0f9d0c549fd6e268945288deba8b4f77f19b8e71)
---
 lang/java/avro/src/main/java/org/apache/avro/LogicalTypes.java    | 3 +++
 lang/java/avro/src/main/java/org/apache/avro/util/TimePeriod.java | 8 ++++----
 lang/java/avro/src/test/java/org/apache/avro/TestLogicalType.java | 2 +-
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/lang/java/avro/src/main/java/org/apache/avro/LogicalTypes.java 
b/lang/java/avro/src/main/java/org/apache/avro/LogicalTypes.java
index 6a894f0510..d5b246b4b7 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/LogicalTypes.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/LogicalTypes.java
@@ -140,6 +140,9 @@ public class LogicalTypes {
       case BIG_DECIMAL:
         logicalType = BIG_DECIMAL_TYPE;
         break;
+      case DURATION:
+        logicalType = DURATION_TYPE;
+        break;
       case UUID:
         logicalType = UUID_TYPE;
         break;
diff --git a/lang/java/avro/src/main/java/org/apache/avro/util/TimePeriod.java 
b/lang/java/avro/src/main/java/org/apache/avro/util/TimePeriod.java
index a1f7fa4e8b..89496744f3 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/util/TimePeriod.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/util/TimePeriod.java
@@ -52,7 +52,7 @@ import static java.util.Objects.requireNonNull;
  * <p>
  * Compared to {@link Period java.time.Period}, this class has a smaller range
  * ('only' supporting a little less than 358 million years), and cannot support
- * negative time periods.
+ * negative periods.
  * </p>
  *
  * <p>
@@ -82,9 +82,9 @@ import static java.util.Objects.requireNonNull;
  * </tr>
  * <tr>
  * <td>Time range (approx.)</td>
- * <td>0 - 49 days</td>
+ * <td>0 &endash; 49 days</td>
  * <td>unsupported</td>
- * <td>-68 - 68 years</td>
+ * <td>-68 &endash; 68 years</td>
  * </tr>
  * <tr>
  * <td>Date range (approx.)</td>
@@ -95,7 +95,7 @@ import static java.util.Objects.requireNonNull;
  * </table>
  *
  * @see <a href=
- *      "https://avro.apache.org/docs/1.11.1/specification/#duration";>Avro 1.11
+ *      "https://avro.apache.org/docs/current/specification/#duration";>Avro
  *      specification on duration</a>
  */
 public final class TimePeriod implements TemporalAmount, Serializable {
diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestLogicalType.java 
b/lang/java/avro/src/test/java/org/apache/avro/TestLogicalType.java
index 733997db28..61cc03a94c 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/TestLogicalType.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/TestLogicalType.java
@@ -215,7 +215,7 @@ public class TestLogicalType {
   @Test
   void durationExtendsFixed12() {
     Schema durationSchema = 
LogicalTypes.duration().addToSchema(Schema.createFixed("f", null, null, 12));
-    assertEquals(LogicalTypes.duration(), durationSchema.getLogicalType());
+    assertEquals(LogicalTypes.duration(), 
LogicalTypes.fromSchema(durationSchema));
 
     assertThrows("Duration requires a fixed(12)", 
IllegalArgumentException.class,
         "Duration can only be used with an underlying fixed type of size 12.",

Reply via email to