The exception tells, that PD4ML encountered a charset directive, whose value differs from the default. It tries to re-open the input stream in order to apply the new encoding, but it can not in the particular case (for example, InputStream.reset() is not supported).
The simpliest workaround is to use
public void render( URL url, OutputStream os )
instead of your approach.