@Override public byte[] getBytes(final T value) { try { final ByteArrayOutputStream bOut = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream(bOut); out.writeObject(value); out.close(); final byte[] valueBytes = bOut.toByteArray(); final int size = valueBytes.length; final byte[] sizeBytes = MethodPageValueManager.getValueIntBytes(size); final byte[] bytes = new byte[valueBytes.length + sizeBytes.length]; System.arraycopy(sizeBytes, 0, bytes, 0, sizeBytes.length); System.arraycopy(valueBytes, 0, bytes, sizeBytes.length, valueBytes.length); return bytes; } catch (final Exception e) { return (byte[]) Exceptions.throwUncheckedException(e); } }