You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/07/30 17:13:24 UTC

svn commit: r561009 - in /incubator/servicemix/branches/servicemix-3.1: common/servicemix-components/src/main/java/org/apache/servicemix/components/file/ deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/

Author: gnodet
Date: Mon Jul 30 08:13:23 2007
New Revision: 561009

URL: http://svn.apache.org/viewvc?view=rev&rev=561009
Log:
SM-1012: Possible resource leak in FilePoller

Modified:
    incubator/servicemix/branches/servicemix-3.1/common/servicemix-components/src/main/java/org/apache/servicemix/components/file/FilePoller.java
    incubator/servicemix/branches/servicemix-3.1/deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/FilePollerEndpoint.java

Modified: incubator/servicemix/branches/servicemix-3.1/common/servicemix-components/src/main/java/org/apache/servicemix/components/file/FilePoller.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.1/common/servicemix-components/src/main/java/org/apache/servicemix/components/file/FilePoller.java?view=diff&rev=561009&r1=561008&r2=561009
==============================================================================
--- incubator/servicemix/branches/servicemix-3.1/common/servicemix-components/src/main/java/org/apache/servicemix/components/file/FilePoller.java (original)
+++ incubator/servicemix/branches/servicemix-3.1/common/servicemix-components/src/main/java/org/apache/servicemix/components/file/FilePoller.java Mon Jul 30 08:13:23 2007
@@ -194,13 +194,19 @@
     }
 
     protected void processFile(File aFile) throws Exception {
-        String name = aFile.getCanonicalPath();
-        InputStream in = new BufferedInputStream(new FileInputStream(aFile));
-        InOnly exchange = getExchangeFactory().createInOnlyExchange();
-        NormalizedMessage message = exchange.createMessage();
-        exchange.setInMessage(message);
-        marshaler.readMessage(exchange, message, in, name);
-        getDeliveryChannel().sendSync(exchange);
-        in.close();
+        InputStream in = null;
+        try {
+            String name = aFile.getCanonicalPath();
+            in = new BufferedInputStream(new FileInputStream(aFile));
+            InOnly exchange = getExchangeFactory().createInOnlyExchange();
+            NormalizedMessage message = exchange.createMessage();
+            exchange.setInMessage(message);
+            marshaler.readMessage(exchange, message, in, name);
+            getDeliveryChannel().sendSync(exchange);
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+        }
     }
 }

Modified: incubator/servicemix/branches/servicemix-3.1/deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/FilePollerEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.1/deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/FilePollerEndpoint.java?view=diff&rev=561009&r1=561008&r2=561009
==============================================================================
--- incubator/servicemix/branches/servicemix-3.1/deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/FilePollerEndpoint.java (original)
+++ incubator/servicemix/branches/servicemix-3.1/deployables/bindingcomponents/servicemix-file/src/main/java/org/apache/servicemix/file/FilePollerEndpoint.java Mon Jul 30 08:13:23 2007
@@ -244,21 +244,27 @@
     }
 
     protected void processFile(File aFile) throws Exception {
-        String name = aFile.getCanonicalPath();
-        InputStream in = new BufferedInputStream(new FileInputStream(aFile));
-        InOnly exchange = getExchangeFactory().createInOnlyExchange();
-        configureExchangeTarget(exchange);
-        NormalizedMessage message = exchange.createMessage();
-        exchange.setInMessage(message);
-        marshaler.readMessage(exchange, message, in, name);
-        sendSync(exchange);
-        in.close();
-        if (exchange.getStatus() == ExchangeStatus.ERROR) {
-            Exception e = exchange.getError();
-            if (e == null) {
-                e = new JBIException("Unkown error");
+        InputStream in = null;
+        try {
+            String name = aFile.getCanonicalPath();
+            in = new BufferedInputStream(new FileInputStream(aFile));
+            InOnly exchange = getExchangeFactory().createInOnlyExchange();
+            configureExchangeTarget(exchange);
+            NormalizedMessage message = exchange.createMessage();
+            exchange.setInMessage(message);
+            marshaler.readMessage(exchange, message, in, name);
+            sendSync(exchange);
+            if (exchange.getStatus() == ExchangeStatus.ERROR) {
+                Exception e = exchange.getError();
+                if (e == null) {
+                    e = new JBIException("Unkown error");
+                }
+                throw e;
+            }
+        } finally {
+            if (in != null) {
+                in.close();
             }
-            throw e;
         }
     }