Hi Peter, I would make e.g. the change to Resource an independent change.
Below you declare that you throw IOException, but you actually swallow
it, which is not good.
/**
+ * Closes cached input stream used for getBytes / getByteBuffer
+ * @throws IOException
+ */
+ @Override
+ public synchronized void close() {
