Commit 2a36c9c
Restore Android record deserialization fallback in TrackableSerializer
<!-- -->Card-Forge#10343 replaced GameEventProxy with TrackableSerializer but did not
carry forward the readClassDescriptor() override added in <!-- -->Card-Forge#10304.
Android's D8 desugars records to regular classes with computed
serialVersionUIDs, while the JVM hardcodes 0L for records — so every
GameEvent now fails to deserialize on Android clients in cross-platform
network play (visible as "TrackableSerializer: Failed to unwrap event:
... local class incompatible: stream classdesc serialVersionUID = 0,
local class serialVersionUID = ..." warnings).
Re-applies the same pattern used in CObjectInputStream and the deleted
GameEventProxy: when the stream's UID disagrees with the local class
UID, fall through to the local descriptor.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 22b1816 commit 2a36c9c
1 file changed
Lines changed: 17 additions & 0 deletions
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
229 | 246 | | |
230 | 247 | | |
231 | 248 | | |
| |||
0 commit comments