/** * Returns a protective copy of the Extra Fields. * {@code null} is never returned. * * @see #getExtraLength */ byte[] getExtra() { final int size = getExtraLength(); assert UShort.check(size); if (0 == size) return EMPTY; final byte[] data = new byte[size]; writeTo(data, 0); return data; }
@Test public void testGetSet() { assertEquals(0, fields.getExtra().length); fields.readFrom(serialized, 0, serialized.length); assertEquals(serialized.length, fields.getExtraLength()); serialized[0] = (byte) 0xff; byte[] got1 = fields.getExtra(); assertNotNull(got1); assertNotSame(serialized, got1); final byte[] got2 = fields.getExtra(); assertNotNull(got2); assertNotSame(serialized, got2); assertNotSame(got1, got2); serialized[0] = (byte) 0x00; assertTrue(Arrays.equals(serialized, got1)); assertTrue(Arrays.equals(serialized, got2)); }