Return-Path: Delivered-To: apmail-camel-commits-archive@www.apache.org Received: (qmail 92434 invoked from network); 26 Aug 2009 04:25:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 26 Aug 2009 04:25:26 -0000 Received: (qmail 40513 invoked by uid 500); 26 Aug 2009 04:25:51 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 40463 invoked by uid 500); 26 Aug 2009 04:25:50 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 40454 invoked by uid 99); 26 Aug 2009 04:25:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Aug 2009 04:25:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Aug 2009 04:25:48 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 34CA92388892; Wed, 26 Aug 2009 04:25:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r807874 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/converter/stream/CachedOutputStream.java test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java Date: Wed, 26 Aug 2009 04:25:28 -0000 To: commits@camel.apache.org From: ningjiang@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090826042528.34CA92388892@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ningjiang Date: Wed Aug 26 04:25:27 2009 New Revision: 807874 URL: http://svn.apache.org/viewvc?rev=807874&view=rev Log: CAMEL-1934 Fixed the StreamCache Unit test failure on Windows Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java?rev=807874&r1=807873&r2=807874&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java Wed Aug 26 04:25:27 2009 @@ -25,6 +25,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; import org.apache.camel.Exchange; import org.apache.camel.StreamCache; @@ -51,6 +53,8 @@ private boolean inMemory = true; private int totalLength; private File tempFile; + + private List fileInputStreamCaches = new ArrayList(4); private long threshold = 64 * 1024; private File outputDir; @@ -70,10 +74,13 @@ @Override public void onDone(Exchange exchange) { try { + // close the stream and FileInputStreamCache + close(); + for (FileInputStreamCache cache : fileInputStreamCaches) { + cache.close(); + } // cleanup temporary file if (tempFile != null) { - // close the stream first and than delete the file - close(); boolean deleted = tempFile.delete(); if (!deleted) { LOG.warn("Cannot delete temporary cache file: " + tempFile); @@ -149,7 +156,9 @@ } } else { try { - return new FileInputStreamCache(tempFile, this); + FileInputStreamCache answer = new FileInputStreamCache(tempFile, this); + fileInputStreamCaches.add(answer); + return answer; } catch (FileNotFoundException e) { throw IOHelper.createIOException("Cached file " + tempFile + " not found", e); } @@ -168,7 +177,9 @@ } } else { try { - return new FileInputStreamCache(tempFile, this); + FileInputStreamCache answer = new FileInputStreamCache(tempFile, this); + fileInputStreamCaches.add(answer); + return answer; } catch (FileNotFoundException e) { throw IOHelper.createIOException("Cached file " + tempFile + " not found", e); } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java?rev=807874&r1=807873&r2=807874&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java Wed Aug 26 04:25:27 2009 @@ -109,10 +109,7 @@ cache.reset(); temp = toString((InputStream)cache); assertEquals("Cached a wrong file", temp, TEST_STRING); - // windows can't delet the file which is open , so we close the stream first - if (System.getProperty("os.name").startsWith("Windows")) { - ((InputStream)cache).close(); - } + exchange.getUnitOfWork().done(exchange); ((InputStream)cache).close();