Hi
You may use decorator pattern to decorate the input & output stream from
Servlet to a UnclosableInputStream & UnclosableOutputStream,
public class UnclosableInputStream extends java.io.FilterInputStream {
public UnclosableInputStream(InputStream inputStream) {
super(inputStream);
}
@Override
public void close() {
// do nothing.
}
}
InputStream inputStream = new
UnclosableInputStream(servlet.getInputStream());
inputStream.read(); // invoke the decorated ServletInputStream.
inputStream.close() // do nothing
Hope it'll helpful for you.
Zijian.
2011/6/22 Ronald Albury <[email protected]>
> My understanding is that I should *not* close the servlet input/output
> streams (if you don't open them - you shouldn't close them)
>
> But what if I have wrapped those streams inside other streams that I want
> to
> close? Let's say I have several layers of object streams, cipher streams,
> compression streams, etc. Will it be ok to call close on the outer-most
> stream, or do I need to rely on the 'flush' and 'finish' methods on these
> wrapping streams.
>
> What about the potential for memory leaks - or is that mostly just an issue
> on the inner-most stream that actually does the physical I/O?
>
> Thank you for taking the time to read this email.
>