[ 
https://issues.apache.org/jira/browse/IGNITE-21899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18014850#comment-18014850
 ] 

Aleksandr Popov edited comment on IGNITE-21899 at 8/19/25 11:21 AM:
--------------------------------------------------------------------

* {*}Migration Reasons{*}:
 * Migration was needed because the persisted Ignite cache still contains 
objects serialized with the legacy class name 
(org.apache.ignite.internal.util.GridIntList), while the new code expects 
org.apache.ignite.tcbot.common.util.GridIntList.
 * On startup, the new bot tries to deserialize fields like statistics.keys or 
buildParameters.keys into the new type, but the binary payload references the 
old FQN, causing IllegalArgumentException and BinaryObjectException.
 * {*}What was done{*}:
 * Implemented backward‑compatible handling for legacy GridIntList so the bot 
can read old Ignite persistence without BinaryObjectException (e.g., in 
FatBuildCompacted/ParametersCompacted).  
 * Added an offline migrator that scans Ignite persistence (work/*) in 
keepBinary mode and replaces any org.apache.ignite.internal.util.GridIntList 
with org.apache.ignite.tcbot.common.util.GridIntList (with safe int[] fallback 
if needed).
 * The migrator performs a recursive transform across cache values (fields, 
collections, maps), rewrites only changed entries via BinaryObjectBuilder, and 
supports dry‑run/apply modes.
 * Verified on a copied work directory with synthetic data: after migration the 
new bot (Ignite 2.16) starts and renders tracked pages without deserialization 
failures.


was (Author: JIRAUSER307332):
* Implemented backward‑compatible handling for legacy GridIntList so the bot 
can read old Ignite persistence without BinaryObjectException (e.g., in 
FatBuildCompacted/ParametersCompacted).  
 * Added an offline migrator that scans Ignite persistence (work/*) in 
keepBinary mode and replaces any org.apache.ignite.internal.util.GridIntList 
with org.apache.ignite.tcbot.common.util.GridIntList (with safe int[] fallback 
if needed).
 * The migrator performs a recursive transform across cache values (fields, 
collections, maps), rewrites only changed entries via BinaryObjectBuilder, and 
supports dry‑run/apply modes.
 * Verified on a copied work directory with synthetic data: after migration the 
new bot (Ignite 2.16) starts and renders tracked pages without deserialization 
failures.

> Fix for TC Bot with Ignite version 2.16
> ---------------------------------------
>
>                 Key: IGNITE-21899
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21899
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Oleg Valuyskiy
>            Assignee: Oleg Valuyskiy
>            Priority: Major
>              Labels: ise
>
> It's impossible to build the project with Apache Ignite 2.16, as 
> GridIntList#clear(), which was removed in the 2.16 version 
> (https://issues.apache.org/jira/browse/IGNITE-20143), is used in TC Bot. All 
> in all, GridIntList is a private API and should not be used in TC Bot.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to