Skip to content

[#462] size of ObjectOutputStream is not equal when two Maps are equal - #612

Draft
peter-lawrey wants to merge 1 commit into
developfrom
fix/Chronicle-Map-462-builder-time-detection-of-java-ser
Draft

[#462] size of ObjectOutputStream is not equal when two Maps are equal#612
peter-lawrey wants to merge 1 commit into
developfrom
fix/Chronicle-Map-462-builder-time-detection-of-java-ser

Conversation

@peter-lawrey

Copy link
Copy Markdown
Member

What changed

Local 207c8c94 detects Java-serialised container keys at builder time and supplies warning/strict behaviour plus tests.

Why

This publishes the reviewed local solution for #462 so the implementation can be discussed in the normal review workflow.

Review status

Draft — coherent local solution, not yet merge-ready.

Before marking ready: Review compatibility of the new surface and custom DataAccess documentation, then publish.

Validation

  • git diff --check against ea: passed.
  • Internal .pr/ scaffolding and local workspace paths: removed.
  • Focused validation recorded by the backlog audit is described above; it was not rerun during this publication pass.
  • Remote CI and maintainer review are still required.

Tracking

Fixes #462

Chronicle Map identifies keys by serialized bytes, while Java serialization can encode equals()-equal objects differently because of graph sharing, collection ordering, or fields ignored by equals().

Track whether key serialization was selected by the automatic Java-serialization fallback. Warn for every such key by default for compatibility, and reject every fallback key when strictSerializedKeyIdentity is enabled. Explicitly configured DataAccess implementations remain trusted caller contracts.

Cover the original TreeMap shared-reference mechanism, a non-container domain key, a declared supertype, explicit DataAccess exemption, warnings, and the system property. This is an opt-in guard and does not change default lookup semantics.

Refs #462
@peter-lawrey
peter-lawrey force-pushed the fix/Chronicle-Map-462-builder-time-detection-of-java-ser branch from b972b45 to 73e9e50 Compare August 22, 2026 11:00
@peter-lawrey
peter-lawrey changed the base branch from ea to develop August 22, 2026 11:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

size of ObjectOutputStream is not equal when two Maps are equal

1 participant