From 03a185a663730b3dd05e767a5e2ab27d647630e0 Mon Sep 17 00:00:00 2001 From: Davide Angelocola Date: Fri, 19 Jun 2026 21:30:30 +0200 Subject: [PATCH] fix(reader): mask byte before OR in BoolArray.materialize (Sonar S3034) Add `& 0xff` so the byte isn't sign-promoted to int in the bit-set OR. The trailing `(byte)` cast already made the result correct, but the mask makes the intent explicit and clears the reliability finding. Co-Authored-By: Claude Opus 4.8 --- .../main/java/io/github/dfa1/vortex/reader/array/BoolArray.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reader/src/main/java/io/github/dfa1/vortex/reader/array/BoolArray.java b/reader/src/main/java/io/github/dfa1/vortex/reader/array/BoolArray.java index abf34b96..8ea89263 100644 --- a/reader/src/main/java/io/github/dfa1/vortex/reader/array/BoolArray.java +++ b/reader/src/main/java/io/github/dfa1/vortex/reader/array/BoolArray.java @@ -53,7 +53,7 @@ default MemorySegment materialize(SegmentAllocator arena) { if (getBoolean(i)) { long byteIndex = i >>> 3; byte b = dst.get(ValueLayout.JAVA_BYTE, byteIndex); - dst.set(ValueLayout.JAVA_BYTE, byteIndex, (byte) (b | (1 << (i & 7)))); + dst.set(ValueLayout.JAVA_BYTE, byteIndex, (byte) ((b & 0xff) | (1 << (i & 7)))); } } return dst;