@Override public void onClose(CachedOutputStream cos) { long l = LOG.logStart(); byte[] buf = new byte[1024]; int len; InputStream is; try { is = cos.getInputStream(); while ((len = is.read(buf)) > 0) { logOutputStream.write(buf, 0, len); } } catch (IOException ex) { LOG.logError(l, ex); } LoggingMessage buffer = setupBuffer(message, fout); LOG.log(buffer.toString()); try { // empty out the cache cos.lockOutputStream(); cos.resetOut(null, false); } catch (Exception ex) { LOG.logWarn(l, "Error clearing cache: " + ex.getMessage(), null); } message.setContent(OutputStream.class, origStream); }