Tagged input and output streams
-------------------------------

                 Key: IO-192
                 URL: https://issues.apache.org/jira/browse/IO-192
             Project: Commons IO
          Issue Type: New Feature
          Components: Streams/Writers
            Reporter: Jukka Zitting
            Priority: Minor


I'd like to introduce two new proxy streams, TaggedInputStream and 
TaggedOutputStream, that tag all exceptions thrown by the proxied streams. The 
goal is to make it easier to detect the source of an IOException when you're 
dealing with multiple different streams. For example:

{code}
InputStream input = ...;
OutputStream output = ...;
TaggedOutputStream proxy = new TaggedOutputStream(output);
try {
    IOUtils.copy(input, proxy);
} catch (IOException e) {
    if (proxy.isTagged(e)) {
        // Could not write to the output stream
        // Perhaps we can handle that error somehow (retry, cancel?)
        e.initCause(); // gives the original exception from the proxied stream
    } else {
        // Could not read from the input stream, nothing we can do
        throw e;
    }
}
{code}

I'm working on a patch to implement such a feature.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to