This is an automated email from the ASF dual-hosted git repository. dkulp pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push: new 42ae16e Optimize a bit, close the dangling input stream 42ae16e is described below commit 42ae16e8fafcb172e28c481e3052a40e5e5108fb Author: Daniel Kulp <dk...@apache.org> AuthorDate: Fri Jan 10 11:10:49 2020 -0500 Optimize a bit, close the dangling input stream --- .../main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java index 0ce10f6..51a6033 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java @@ -19,8 +19,6 @@ package org.apache.cxf.jaxrs.utils; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -92,6 +90,7 @@ import org.apache.cxf.common.util.ReflectionUtil; import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.DOMUtils; import org.apache.cxf.helpers.IOUtils; +import org.apache.cxf.helpers.LoadingByteArrayOutputStream; import org.apache.cxf.interceptor.Fault; import org.apache.cxf.io.CacheAndWriteOutputStream; import org.apache.cxf.io.ReaderInputStream; @@ -1892,14 +1891,13 @@ public final class JAXRSUtils { // copy the input stream so that it is not inadvertently closed private static InputStream copyAndGetEntityStream(Message m) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try { - IOUtils.copy(m.getContent(InputStream.class), baos); + LoadingByteArrayOutputStream baos = new LoadingByteArrayOutputStream(); + try (InputStream in = m.getContent(InputStream.class)) { + IOUtils.copy(in, baos); } catch (IOException e) { throw ExceptionUtils.toInternalServerErrorException(e, null); } - final byte[] copiedBytes = baos.toByteArray(); - m.setContent(InputStream.class, new ByteArrayInputStream(copiedBytes)); - return new ByteArrayInputStream(copiedBytes); + m.setContent(InputStream.class, baos.createInputStream()); + return baos.createInputStream(); } }