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

gephi / graphstore / #570
91%

Build:
DEFAULT BRANCH: master
Ran 17 Aug 2026 06:31PM 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

17 Aug 2026 06:29PM UTC coverage: 91.198% (-0.04%) from 91.242%
#570

push

web-flow
Harden serialization: fail on unknown tags, fix char encoding (#284)

* Harden serialization: fail on unknown tags, fix char encoding

Three scoped fixes to the serialization layer. No change to the on-disk
format, so no VERSION bump.

- deserialize() silently returned null for an unrecognized type tag,
  surfacing later as a confusing ClassCastException or silent data loss.
  It now throws IOException naming the tag. The preceding `case -1` was
  unreachable (readUnsignedByte never returns -1) and is removed.

- CHAR and CHAR_ARRAY relied on DataOutput.writeChar/readChar, but
  DataInputOutput implements those with 4 bytes instead of the 2 the
  interface specifies. Production writes via DataOutputStream, so no
  stored data is affected, but graphstore's own tests were round-tripping
  an encoding that never reaches disk. Both sides now use
  writeShort/readUnsignedShort, which is byte-identical to
  DataOutputStream.writeChar, and DataInputOutput.writeChar/readChar are
  fixed to honour the contract.

- Dropped Locale support. Locale is not an AttributeUtils supported type,
  so it cannot enter a graph through the public API. Tag 124 is kept
  reserved so it is never reused.

Adds a test asserting all serialization tag constants are distinct.

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

* Cover non-ASCII chars in serialization tests

The char tests only used ASCII values, so they could not detect a
narrowing of the 2-byte encoding. Extend them across the boundaries of
the 16-bit range: above 0x7F, above 0x7FF, either side of the
signed-short flip, the 16-bit maximum, and an unpaired surrogate.

Verified by temporarily narrowing CHAR to a symmetric 1-byte encoding,
which the previous values did not catch.

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

---------

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

4 of 7 new or added lines in 2 files covered. (57.14%)

4 existing lines in 1 file now uncovered.

11791 of 12929 relevant lines covered (91.2%)

0.91 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
72.57
-4.42% src/main/java/org/gephi/graph/impl/utils/DataInputOutput.java
1
97.85
-0.01% src/main/java/org/gephi/graph/impl/Serialization.java

Coverage Regressions

Lines Coverage ∆ File
4
72.57
-4.42% src/main/java/org/gephi/graph/impl/utils/DataInputOutput.java
Jobs
ID Job ID Ran Files Coverage
1 #570.1 17 Aug 2026 06:31PM UTC 128
91.2
Source Files on build #570
  • Tree
  • List 128
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6a294846 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