The GitHub Actions job "Fory CI" on fory.git/row-codec-schema-versions has failed. Run started by GitHub user stevenschlansker (triggered by stevenschlansker).
Head commit for run: 67d919fd8474484217e0f332e849cb4ab4a320a0 / Claude (on behalf of Steven Schlansker) <[email protected]> fix(format): decode map struct keys at current schema during value projection A schema-evolution map codec whose value reads at a historical version corrupted a struct key. The projection codec applied the value's version suffix to every nested bean via the type-blind nestedBeanSuffix, and the bean-codec registration maps were keyed by typeRef. When the key and value share a class (the reader side is effectively Map<Bean,Bean> with the value historical and the key current), both collapsed to one registration entry, so the key reused the value's historical row codec and decoded a current key row with the wrong field count. Map keys carry no per-payload version hash and are always read at the current schema, so route the key position to the current, unsuffixed codec under a distinct registration key. BaseBinaryEncoderBuilder gains a beanCodecKey(TypeRef) indirection (default identity, so row/array codecs are unchanged) and keys its bean maps by it. MapEncoderBuilder overrides nestedBeanSuffix and beanCodecKey for the key position, gated by an inKeyPosition flag. The flag is scoped around both expression construction and genCode of the key subtree, because the encode ForEach registers nested beans eagerly in its constructor while the decode lazy array registers them during genCode. Enables the previously-disabled SchemaEvolutionStressTest#mapStructKeyValueEvolution. Report URL: https://github.com/apache/fory/actions/runs/28268351914 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
