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

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


The following commit(s) were added to refs/heads/master by this push:
     new bef547d44 [#2654] fix(spark): NPE on adding data into overlapping 
decompression worker (#2661)
bef547d44 is described below

commit bef547d44650738256adac05162b2a3efacb8c74
Author: Junfan Zhang <[email protected]>
AuthorDate: Mon Nov 3 09:51:29 2025 +0800

    [#2654] fix(spark): NPE on adding data into overlapping decompression 
worker (#2661)
    
    ### What changes were proposed in this pull request?
    
    fix npe on adding data into overlapping decompression worker
    
    ### Why are the changes needed?
    
    fix #2654
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    internal job tests
---
 .../org/apache/uniffle/client/impl/ShuffleReadClientImpl.java     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/client/src/main/java/org/apache/uniffle/client/impl/ShuffleReadClientImpl.java
 
b/client/src/main/java/org/apache/uniffle/client/impl/ShuffleReadClientImpl.java
index a2bb18fa1..8834eaef2 100644
--- 
a/client/src/main/java/org/apache/uniffle/client/impl/ShuffleReadClientImpl.java
+++ 
b/client/src/main/java/org/apache/uniffle/client/impl/ShuffleReadClientImpl.java
@@ -343,15 +343,15 @@ public class ShuffleReadClientImpl implements 
ShuffleReadClient {
       sdr = null;
     }
     final ShuffleDataResult shuffleDataResult = 
clientReadHandler.readShuffleData();
-    if (decompressionWorker != null) {
-      decompressionWorker.add(batchIndex++, shuffleDataResult);
-      segmentIndex = 0;
-    }
     sdr = shuffleDataResult;
     readDataTime.addAndGet(System.currentTimeMillis() - start);
     if (sdr == null) {
       return 0;
     }
+    if (decompressionWorker != null) {
+      decompressionWorker.add(batchIndex++, shuffleDataResult);
+      segmentIndex = 0;
+    }
     readBuffer = sdr.getDataBuffer();
     if (readBuffer == null || readBuffer.capacity() == 0) {
       return 0;

Reply via email to