You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hop.apache.org by "lionants02 (via GitHub)" <gi...@apache.org> on 2026/06/11 06:40:38 UTC

[I] [Bug]: IndexOutOfBoundsException in Sorted merge transform when reading from a transform with multiple copies (hop)

lionants02 opened a new issue, #7263:
URL: https://github.com/apache/hop/issues/7263

   ### Apache Hop version?
   
   2.18.0
   
   ### Java version?
   
   OpenJDK Runtime Environment (build 21.0.2+13-58) OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)
   
   ### Operating system
   
   Windows
   
   ### What happened?
   
   ### Description
   When running a pipeline in Apache Hop 2.18.0, the `Sorted merge` transform throws an `IndexOutOfBoundsException` if the preceding transform (`Sort rows`) is configured to run with multiple copies (e.g., `x8`). The internal array or list managing the incoming rowsets (`inputRowSets`) does not seem to handle multiple incoming parallel streams properly during the first row retrieval phase (`getRowSortedFirstCall`), leading to a crash when trying to access index 7 when the list length is only 1.
   
   ### Environment
   - **Apache Hop version:** 2.18.0
   - **Execution Engine:** Local Pipeline Engine
   - **Java Version:** OpenJDK Runtime Environment (build 21.0.2+13-58) OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)
   - **OS:** Windows11
   
   ### Steps to Reproduce
   1. Create a pipeline with the following sequence: `Generate rows` -> `Cluset generate` -> `Sort rows` -> `Sorted merge`.
   2. Configure `Generate rows`, `Cluset generate`, and `Sort rows` to run with **8 copies** (`x8`).
   3. Keep the `Sorted merge` transform at the default **1 copy**.
   4. Execute the pipeline using the Local Pipeline Engine.
   5. The pipeline will immediately crash at the `Sorted merge` transform block.
   
   ### Expected Behavior
   The `Sorted merge` transform should dynamically discover and allocate row sets for all 8 incoming parallel streams from the previous `Sort rows` transform copies, then successfully merge them in sorted order without throwing an index bounds error.
   
   ### Actual Behavior
   The pipeline fails instantly with:
   `java.lang.IndexOutOfBoundsException: Index 7 out of bounds for length 1` at `org.apache.hop.pipeline.transforms.sortedmerge.SortedMerge.getRowSortedFirstCall(SortedMerge.java:145)`
   
   ### Screenshots
   <img width="1631" height="802" alt="Image" src="https://github.com/user-attachments/assets/2676cd0c-1aff-44cf-ace6-60ad487693e4" />
   
   ### Log Output
   ```text
   2026/06/11 13:29:58 [Basic]    Hop - Pipeline opened.
   2026/06/11 13:29:58 [Basic]    Hop - Launching pipeline [sortmerge]...
   2026/06/11 13:29:58 [Basic]    Hop - Started executing pipeline 'sortmerge'.
   2026/06/11 13:29:58 [Basic]    sortmerge - Executing this pipeline using the Local Pipeline Engine with run configuration 'local'
   2026/06/11 13:29:58 [Basic]    sortmerge - Execution started for pipeline [sortmerge]
   2026/06/11 13:29:58 [Basic]    Generate rows.1 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.0 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.2 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.3 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.5 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.4 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.6 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Generate rows.7 - Finished processing (I=0, O=0, R=0, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.2 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.3 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.1 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.0 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.6 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.4 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.7 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Cluset generate.5 - Finished processing (I=0, O=0, R=10000, W=10000, U=0, E=0)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - Unexpected error
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - java.lang.IndexOutOfBoundsException: Index 7 out of bounds for length 1
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/java.util.Objects.checkIndex(Objects.java:385)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/java.util.ArrayList.get(ArrayList.java:427)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at org.apache.hop.pipeline.transforms.sortedmerge.SortedMerge.getRowSortedFirstCall(SortedMerge.java:145)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at org.apache.hop.pipeline.transforms.sortedmerge.SortedMerge.getRowSorted(SortedMerge.java:60)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at org.apache.hop.pipeline.transforms.sortedmerge.SortedMerge.processRow(SortedMerge.java:180)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:54)
   2026/06/11 13:29:58 [Error]    Sorted merge.0 - 	at java.base/java.lang.Thread.run(Thread.java:1583)
   2026/06/11 13:29:58 [Basic]    Hop - Stopped processing pipeline 'sortmerge'.
   2026/06/11 13:29:58 [Basic]    Sort rows.6 - Finished processing (I=0, O=0, R=10000, W=9904, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.7 - Finished processing (I=0, O=0, R=10000, W=9906, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.0 - Finished processing (I=0, O=0, R=10000, W=9901, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.2 - Finished processing (I=0, O=0, R=10000, W=9917, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.4 - Finished processing (I=0, O=0, R=10000, W=9904, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sorted merge.0 - Finished processing (I=0, O=0, R=1, W=0, U=0, E=1)
   2026/06/11 13:29:58 [Basic]    Sort rows.5 - Finished processing (I=0, O=0, R=10000, W=0, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.3 - Finished processing (I=0, O=0, R=10000, W=0, U=0, E=0)
   2026/06/11 13:29:58 [Basic]    Sort rows.1 - Finished processing (I=0, O=0, R=10000, W=0, U=0, E=0)
   2026/06/11 13:29:58 [Minimal]  sortmerge - Pipeline detected one or more transforms with errors.
   2026/06/11 13:29:58 [Minimal]  sortmerge - Pipeline is killing the other transforms!
   2026/06/11 13:29:58 [Basic]    sortmerge - Pipeline duration : 0.231 seconds [  0.231" ]
   2026/06/11 13:29:58 [Basic]    Hop - Pipeline 'sortmerge' completed.
   2026/06/11 13:29:58 [Basic]    sortmerge - Execution finished on a local pipeline engine with run configuration 'local'
   ```
   
   
   ### Issue Priority
   
   Priority: 2
   
   ### Issue Component
   
   Component: Hop Gui


-- 
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: issues-unsubscribe@hop.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [Bug]: IndexOutOfBoundsException in Sorted merge transform when reading from a transform with multiple copies (hop)

Posted by "lionants02 (via GitHub)" <gi...@apache.org>.
lionants02 closed issue #7263: [Bug]: IndexOutOfBoundsException in Sorted merge transform when reading from a transform with multiple copies
URL: https://github.com/apache/hop/issues/7263


-- 
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: issues-unsubscribe@hop.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [Bug]: IndexOutOfBoundsException in Sorted merge transform when reading from a transform with multiple copies (hop)

Posted by "hansva (via GitHub)" <gi...@apache.org>.
hansva commented on issue #7263:
URL: https://github.com/apache/hop/issues/7263#issuecomment-4677944445

   Duplicate of https://github.com/apache/hop/issues/7219. We are preparing a 2.18.1 release to fix this regression.
   You can already see if it is fixed with the client [here](https://drive.google.com/file/d/1_agKL8nMl_kKKrxCdFl_1zkXvi3vDoaX/view?usp=sharing)


-- 
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: issues-unsubscribe@hop.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org