You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/03/22 14:19:18 UTC

[6/6] camel git commit: CAMEL-9735: Revered to old logic that do not cause OOME and polished the code. Also fixed test case to fail but @Ignored until we have a proper fix.

CAMEL-9735: Revered to old logic that do not cause OOME and polished the code. Also fixed test case to fail but @Ignored until we have a proper fix.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d86dd18f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d86dd18f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d86dd18f

Branch: refs/heads/camel-2.16.x
Commit: d86dd18f80a8218f06661029573231cfdae2c9cd
Parents: 8ef91b4
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Mar 22 14:17:53 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Mar 22 14:18:54 2016 +0100

----------------------------------------------------------------------
 .../apache/camel/dataformat/tarfile/TarIterator.java    | 10 ++++------
 .../dataformat/tarfile/SpringTarSplitterRouteTest.java  |  2 ++
 .../tarfile/TarFileMultipleFilesSplitterTest.java       |  3 +++
 .../dataformat/tarfile/TarSplitterRouteIssueTest.java   | 12 +++++++-----
 .../camel/dataformat/tarfile/TarSplitterRouteTest.java  |  4 +++-
 .../dataformat/tarfile/SpringTarSplitterRouteTest.xml   |  1 +
 6 files changed, 20 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java
index 91933c0..52332c1 100644
--- a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java
+++ b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarIterator.java
@@ -50,8 +50,8 @@ public class TarIterator implements Iterator<Message>, Closeable {
     private static final Logger LOGGER = LoggerFactory.getLogger(TarIterator.class);
 
     private final Message inputMessage;
-    private TarArchiveInputStream tarInputStream;
-    private Message parent;
+    private volatile TarArchiveInputStream tarInputStream;
+    private volatile Message parent;
 
     public TarIterator(Message inputMessage, InputStream inputStream) {
         this.inputMessage = inputMessage;
@@ -164,9 +164,7 @@ public class TarIterator implements Iterator<Message>, Closeable {
 
     @Override
     public void close() throws IOException {
-        if (tarInputStream != null) {
-            tarInputStream.close();
-            tarInputStream = null;
-        }
+        IOHelper.close(tarInputStream);
+        tarInputStream = null;
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.java
index eba45de..22c1357 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.java
@@ -26,7 +26,9 @@ public class SpringTarSplitterRouteTest extends CamelSpringTestSupport {
     @Test
     public void testSplitter() throws InterruptedException {
         MockEndpoint processTarEntry = getMockEndpoint("mock:processTarEntry");
+
         processTarEntry.expectedBodiesReceivedInAnyOrder("chau", "hi", "hola", "hello", "greetings");
+
         assertMockEndpointsSatisfied();
     }
     

http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileMultipleFilesSplitterTest.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileMultipleFilesSplitterTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileMultipleFilesSplitterTest.java
index 51dd3c9..ffc2a15 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileMultipleFilesSplitterTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileMultipleFilesSplitterTest.java
@@ -31,8 +31,11 @@ public class TarFileMultipleFilesSplitterTest extends TarSplitterRouteTest {
     public void testSplitter() throws InterruptedException {
         MockEndpoint processTarEntry = getMockEndpoint("mock:processTarEntry");
         MockEndpoint splitResult = getMockEndpoint("mock:splitResult");
+
         processTarEntry.expectedBodiesReceivedInAnyOrder("chau", "hi", "hola", "hello", "greetings");
+
         splitResult.expectedBodiesReceivedInAnyOrder("chiau.txt", "hi.txt", "hola.txt", "another/hello.txt", "other/greetings.txt");
+
         assertMockEndpointsSatisfied();
     }
     

http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java
index 2e785ad..0a67b66 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteIssueTest.java
@@ -20,6 +20,7 @@ import java.io.File;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class TarSplitterRouteIssueTest extends CamelTestSupport {
@@ -31,10 +32,11 @@ public class TarSplitterRouteIssueTest extends CamelTestSupport {
     }
 
     @Test
+    @Ignore("CAMEL-9735: There are 3 files in the .tar file but the TarIterator has a bug causing +1 extra")
     public void testSplitter() throws Exception {
         getMockEndpoint("mock:entry").expectedMessageCount(3);
 
-        template.sendBody("seda:decompressFiles", new File("src/test/resources/data/tarfile3.tar"));
+        template.sendBody("direct:decompressFiles", new File("src/test/resources/data/tarfile3.tar"));
 
         assertMockEndpointsSatisfied();
     }
@@ -43,11 +45,11 @@ public class TarSplitterRouteIssueTest extends CamelTestSupport {
     public void testSplitterWithWrongFile() throws Exception {
         getMockEndpoint("mock:entry").expectedMessageCount(0);
         getMockEndpoint("mock:errors").expectedMessageCount(1);
-        //Send a file which is not exit
-        template.sendBody("seda:decompressFiles", new File("src/test/resources/data"));
+
+        // send a file which does not exit
+        template.sendBody("direct:decompressFiles", new File("src/test/resources/data"));
         
         assertMockEndpointsSatisfied();
-        
     }
 
     @Override
@@ -57,7 +59,7 @@ public class TarSplitterRouteIssueTest extends CamelTestSupport {
             public void configure() throws Exception {
                 errorHandler(deadLetterChannel("mock:errors"));
                 
-                from("seda:decompressFiles")
+                from("direct:decompressFiles")
                     .split(new TarSplitter()).streaming().shareUnitOfWork()
                         .log("we are splitting")
                         .to("mock:entry");

http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteTest.java
index 53f8d4e..e91a16f 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarSplitterRouteTest.java
@@ -26,7 +26,9 @@ public class TarSplitterRouteTest extends CamelTestSupport {
     @Test
     public void testSplitter() throws InterruptedException {
         MockEndpoint processTarEntry = getMockEndpoint("mock:processTarEntry");
+
         processTarEntry.expectedBodiesReceivedInAnyOrder("chau", "hi", "hola", "hello", "greetings");
+
         assertMockEndpointsSatisfied();
     }
 
@@ -39,8 +41,8 @@ public class TarSplitterRouteTest extends CamelTestSupport {
                 from("file:src/test/resources/org/apache/camel/dataformat/tarfile/data?consumer.delay=1000&noop=true")
                     .log("Start processing big file: ${header.CamelFileName}")
                     .split(new TarSplitter()).streaming()
-                        .to("log:entry")
                         .convertBodyTo(String.class).to("mock:processTarEntry")
+                        .to("log:entry")
                     .end()
                     .log("Done processing big file: ${header.CamelFileName}");
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86dd18f/components/camel-tarfile/src/test/resources/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/test/resources/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.xml b/components/camel-tarfile/src/test/resources/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.xml
index 8212452..caec35e 100644
--- a/components/camel-tarfile/src/test/resources/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.xml
+++ b/components/camel-tarfile/src/test/resources/org/apache/camel/dataformat/tarfile/SpringTarSplitterRouteTest.xml
@@ -34,6 +34,7 @@
         <!-- refer to our custom expression, using ref tag -->
         <ref>tarSplitter</ref>
         <convertBodyTo type="java.lang.String" charset="UTF-8"/>
+        <to uri="log:line"/>
         <to uri="mock:processTarEntry"/>
       </split>
     </route>