Title: [712] trunk/components/base/src/main/java/org/servicemix/components/vfs: Fix SM-54: problems file FilePoller

Diff

Modified: trunk/components/base/src/main/java/org/servicemix/components/file/FilePoller.java (711 => 712)

--- trunk/components/base/src/main/java/org/servicemix/components/file/FilePoller.java	2005-10-31 07:33:10 UTC (rev 711)
+++ trunk/components/base/src/main/java/org/servicemix/components/file/FilePoller.java	2005-10-31 08:58:36 UTC (rev 712)
@@ -34,6 +34,7 @@
 import java.io.File;
 import java.io.FileFilter;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.Set;
 
@@ -142,6 +143,9 @@
     }
 
     protected void pollFileOrDirectory(File fileOrDirectory) throws WorkException {
+        if (log.isDebugEnabled()) {
+            log.debug("Polling " + fileOrDirectory);
+        }
         File[] files = null;
         if (fileOrDirectory.isDirectory()) {
             if (filter != null) {
@@ -170,6 +174,9 @@
     protected void pollFile(final File aFile) throws WorkException {
         if (!workingSet.contains(aFile)) {
             workingSet.add(aFile);
+            if (log.isDebugEnabled()) {
+                log.debug("Scheduling file " + aFile + " for processing");
+            }
             getWorkManager().scheduleWork(new Work() {
                 public void run() {
                     processFileAndDelete(aFile);
@@ -183,10 +190,15 @@
 
     protected void processFileAndDelete(File aFile) {
         try {
+            if (log.isDebugEnabled()) {
+                log.debug("Processing file " + aFile);
+            }
             if (aFile.exists()) {
                 processFile(aFile);
                 if (isDeleteFile()) {
-                    aFile.delete();
+                    if (!aFile.delete()) {
+                        throw new IOException("Could not delete file " + aFile);
+                    }
                 }
             }
         }
@@ -205,6 +217,7 @@
         NormalizedMessage message = exchange.createMessage();
         exchange.setInMessage(message);
         marshaler.readMessage(exchange, message, in, name);
-        send(exchange);
+        getDeliveryChannel().sendSync(exchange);
+        in.close();
     }
 }

Modified: trunk/components/base/src/main/java/org/servicemix/components/net/FTPPoller.java (711 => 712)

--- trunk/components/base/src/main/java/org/servicemix/components/net/FTPPoller.java	2005-10-31 07:33:10 UTC (rev 711)
+++ trunk/components/base/src/main/java/org/servicemix/components/net/FTPPoller.java	2005-10-31 08:58:36 UTC (rev 712)
@@ -33,6 +33,7 @@
 import javax.jbi.messaging.NormalizedMessage;
 import javax.resource.spi.work.Work;
 import java.util.Set;
+import java.io.IOException;
 import java.io.InputStream;
 
 /**
@@ -130,7 +131,9 @@
         try {
             client = (FTPClient) borrowClient();
             processFile(client, file);
-            client.deleteFile(getWorkingPath() + file.getName()); // REVIEW: what if deleteFile() fails?
+            if (!client.deleteFile(getWorkingPath() + file.getName())) {
+                throw new IOException("Could not delete file " + file);
+            }
         }
         catch (Exception e) {
             log.error("Failed to process file: " + file + ". Reason: " + e, e);
@@ -150,7 +153,8 @@
         NormalizedMessage message = exchange.createMessage();
         exchange.setInMessage(message);
         marshaler.readMessage(exchange, message, in, name);
-        send(exchange);
+        getDeliveryChannel().sendSync(exchange);
+        in.close();
     }
 
 

Modified: trunk/components/base/src/main/java/org/servicemix/components/vfs/FilePoller.java (711 => 712)

--- trunk/components/base/src/main/java/org/servicemix/components/vfs/FilePoller.java	2005-10-31 07:33:10 UTC (rev 711)
+++ trunk/components/base/src/main/java/org/servicemix/components/vfs/FilePoller.java	2005-10-31 08:58:36 UTC (rev 712)
@@ -32,6 +32,8 @@
 import javax.jbi.messaging.InOnly;
 import javax.jbi.messaging.NormalizedMessage;
 import javax.resource.spi.work.Work;
+
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.Set;
 
@@ -152,7 +154,9 @@
         try {
             processFile(file);
             if (isDeleteFile()) {
-                file.delete();
+                if (!file.delete()) {
+                    throw new IOException("Could not delete file " + file);
+                }
             }
         }
         catch (Exception e) {
@@ -173,6 +177,7 @@
         NormalizedMessage message = exchange.createMessage();
         exchange.setInMessage(message);
         marshaler.readMessage(exchange, message, in, name);
-        send(exchange);
+        getDeliveryChannel().sendSync(exchange);
+        in.close();
     }
 }

Reply via email to