private static void buffer(StreamingMessage message, MutableBufferedMessage buffered, int max) throws IOException, SizeLimitExceededException { buffered.setHeader(message.getHeader()); InputStream in = message.getContent(); if (in != null) { ByteArrayOutputStream copy; copy = new SizeLimitedByteArrayOutputStream(max); byte[] b = new byte[1024]; int got; try { while ((got = in.read(b)) > -1) { copy.write(b, 0, got); } buffered.setContent(copy.toByteArray()); } catch (SizeLimitExceededException slee) { buffered.setContent(copy.toByteArray()); throw slee; } } }