• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gephi / graphstore / #571
91%

Build:
DEFAULT BRANCH: master
Ran 18 Aug 2026 06:50PM UTC
Jobs 1
Files 128
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Aug 2026 06:49PM UTC coverage: 91.204% (+0.006%) from 91.198%
#571

push

web-flow
Make graph attributes iteration order canonical (#286)

GraphAttributesImpl backed its map with a java.util.HashMap, and
Serialization.serializeGraphAttributes iterates that map's entrySet()
straight into the byte stream. HashMap iteration order is an
implementation detail, so the serialized bytes were a function of
insertion history rather than of content alone.

Switch the field to a TreeMap so iteration is sorted by key and the
output bytes become a pure function of the content. This is a
prerequisite for byte-pinned serialization fixtures.

TreeMap rejects null keys where HashMap accepted them, and throws NPE
from deep inside the map on get(null)/containsKey(null) where HashMap
returned null/false. Add explicit Objects.requireNonNull(key, "key")
guards to every public method taking a key so the failure is
intentional and well-messaged.

deepHashCode and deepEquals are unchanged and remain correct:
Map.hashCode() is specified as the order-independent sum of entry hash
codes, and deepEquals goes through MapDeepEquals which compares by key
lookup.

The read path is unaffected -- deserializeGraphAttributes just puts
entries into the map -- so previously written files still load
identically. Only the order of newly written graph-attribute entries
changes; the format itself is untouched and Serialization.VERSION is
not bumped.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

10 of 10 new or added lines in 1 file covered. (100.0%)

11800 of 12938 relevant lines covered (91.2%)

0.91 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #571.1 18 Aug 2026 06:51PM UTC 128
91.2
Source Files on build #571
  • Tree
  • List 128
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 626ef535 on github
  • Prev Build on master
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc