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

Gabriel39 pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new 79bc8db7524 [fix](hudi) Align preloaded Parquet format classes on 
branch-4.1 (#68856)
79bc8db7524 is described below

commit 79bc8db7524e9ab8d718e9059a0654bad2626823
Author: Gabriel <[email protected]>
AuthorDate: Sat Oct 10 15:24:01 2026 +0800

    [fix](hudi) Align preloaded Parquet format classes on branch-4.1 (#68856)
    
    ### What problem does this PR solve?
    
    Hudi JNI scans on branch-4.1 fail with `NoSuchMethodError:
    org.apache.parquet.format.Statistics.isSetNan_count()` after the Parquet
    1.18.0 upgrade (#68557).
    
    The BE preload assembly unpacks both the explicitly pinned
    `parquet-format:2.12.0` and `parquet-hadoop-bundle:1.18.0`. The former
    supplies an older `Statistics` class, while the latter supplies a reader
    that calls a method absent from that class. The scanner inherits these
    incompatible classes from its parent classloader.
    
    Remove the redundant standalone format dependency so the format classes
    and readers come from the same Parquet bundle. Keep the existing Parquet
    version and classloader behavior.
    
    ### Release note
    
    Fix Hudi JNI scan failures caused by incompatible Parquet classes in the
    BE preload jar.
    
    ### Check List (For Author)
    
    - Test
        - [x] Manual test (details below)
    - Behavior changed:
    - [x] Yes. Hudi JNI scans can convert Parquet statistics without the
    missing-method error.
    - Does this need documentation?
        - [x] No.
    
    ### Validation
    
    - Assembled the unmodified preload module and reproduced the
    missing-method error by converting INT64 statistics.
    - Cleanly reassembled the modified module with `mvn -pl
    be-java-extensions/preload-extensions clean
    assembly:single@make-assembly-deps` from `fe/`.
    - Ran the same statistics conversion against the rebuilt jar, with
    Hadoop Common and JTS Core runtime dependencies on the classpath; it
    passed. Both `Statistics` and `ParquetMetadataConverter` loaded from the
    rebuilt preload jar.
    - Compared all 1,795 `org/apache/parquet/**/*.class` entries from the
    bundle against the rebuilt assembly; all matched byte for byte.
    - Passed `mvn -pl be-java-extensions/preload-extensions -am
    checkstyle:check` and checked the reactor dependency tree.
    
    The statistics conversion probe uses:
    
    ```java
    Statistics stats = new Statistics();
    stats.setNull_count(0);
    ParquetMetadataConverter.fromParquetStatistics(
            "parquet-mr version 1.18.0", stats, PrimitiveTypeName.INT64);
    ```
    
    Full Hudi integration tests were not run locally. Existing Hudi catalog,
    incremental, time-travel, snapshot, and schema-evolution regression
    suites cover the affected JNI path and should be rerun in CI.
    
    ### Check List (For Reviewer who merge this PR)
    
    - [ ] Confirm the release note
    - [ ] Confirm test cases
    - [ ] Confirm document
    - [ ] Add branch pick label
---
 fe/be-java-extensions/preload-extensions/pom.xml | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/fe/be-java-extensions/preload-extensions/pom.xml 
b/fe/be-java-extensions/preload-extensions/pom.xml
index 772a98dd653..673069eb2d8 100644
--- a/fe/be-java-extensions/preload-extensions/pom.xml
+++ b/fe/be-java-extensions/preload-extensions/pom.xml
@@ -36,11 +36,7 @@ under the License.
     </properties>
 
     <dependencies>
-        <dependency>
-            <groupId>org.apache.parquet</groupId>
-            <artifactId>parquet-format</artifactId>
-            <version>2.12.0</version>
-        </dependency>
+        <!-- Keep Parquet format classes and readers in the same bundle to 
avoid binary incompatibility. -->
         <dependency>
             <groupId>org.apache.parquet</groupId>
             <artifactId>parquet-hadoop-bundle</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to