Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 34C7117BF0 for ; Mon, 2 Feb 2015 21:46:15 +0000 (UTC) Received: (qmail 23184 invoked by uid 500); 2 Feb 2015 21:46:16 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 23116 invoked by uid 500); 2 Feb 2015 21:46:16 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 23035 invoked by uid 99); 2 Feb 2015 21:46:16 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Feb 2015 21:46:16 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id BFFBAE0375; Mon, 2 Feb 2015 21:46:15 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ay@apache.org To: commits@cxf.apache.org Date: Mon, 02 Feb 2015 21:46:16 -0000 Message-Id: <5c268dd07c6f46efbb00779e0425e101@git.apache.org> In-Reply-To: <9fe2410f5f6b4d739dc4032c64cfab4f@git.apache.org> References: <9fe2410f5f6b4d739dc4032c64cfab4f@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [2/2] cxf git commit: [CXF-6228] Using XSLTFeature with large messages creates unremovable temporary files [CXF-6228] Using XSLTFeature with large messages creates unremovable temporary files Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/a9251eca Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a9251eca Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a9251eca Branch: refs/heads/2.7.x-fixes Commit: a9251eca76a2c883904cfae16e4311ce463b7c85 Parents: f74d764 Author: Akitoshi Yoshida Authored: Mon Feb 2 22:45:50 2015 +0100 Committer: Akitoshi Yoshida Committed: Mon Feb 2 22:45:50 2015 +0100 ---------------------------------------------------------------------- .../apache/cxf/feature/transform/XSLTUtils.java | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/a9251eca/rt/core/src/main/java/org/apache/cxf/feature/transform/XSLTUtils.java ---------------------------------------------------------------------- diff --git a/rt/core/src/main/java/org/apache/cxf/feature/transform/XSLTUtils.java b/rt/core/src/main/java/org/apache/cxf/feature/transform/XSLTUtils.java index 1488b5d..0f495ef 100644 --- a/rt/core/src/main/java/org/apache/cxf/feature/transform/XSLTUtils.java +++ b/rt/core/src/main/java/org/apache/cxf/feature/transform/XSLTUtils.java @@ -51,10 +51,10 @@ public final class XSLTUtils { } public static InputStream transform(Templates xsltTemplate, InputStream in) { + CachedOutputStream out = new CachedOutputStream(); try { XMLStreamReader reader = StaxUtils.createXMLStreamReader(in); Source beforeSource = new StaxSource(reader); - CachedOutputStream out = new CachedOutputStream(); Transformer trans = xsltTemplate.newTransformer(); trans.transform(beforeSource, new StreamResult(out)); @@ -64,14 +64,25 @@ public final class XSLTUtils { throw new Fault("GET_CACHED_INPUT_STREAM", LOG, e, e.getMessage()); } catch (TransformerException e) { throw new Fault("XML_TRANSFORM", LOG, e, e.getMessage()); + } finally { + try { + in.close(); + } catch (Exception e) { + // ignore + } + try { + out.close(); + } catch (Exception e) { + // ignore + } } } public static Reader transform(Templates xsltTemplate, Reader inReader) { + CachedWriter outWriter = new CachedWriter(); try { XMLStreamReader reader = StaxUtils.createXMLStreamReader(inReader); Source beforeSource = new StaxSource(reader); - CachedWriter outWriter = new CachedWriter(); Transformer trans = xsltTemplate.newTransformer(); trans.transform(beforeSource, new StreamResult(outWriter)); @@ -81,6 +92,17 @@ public final class XSLTUtils { throw new Fault("GET_CACHED_INPUT_STREAM", LOG, e, e.getMessage()); } catch (TransformerException e) { throw new Fault("XML_TRANSFORM", LOG, e, e.getMessage()); + } finally { + try { + inReader.close(); + } catch (Exception e) { + // ignore + } + try { + outWriter.close(); + } catch (Exception e) { + // ignore + } } }