Title: [712] trunk/components/base/src/main/java/org/servicemix/components/vfs: Fix SM-54: problems file FilePoller
- Revision
- 712
- Author
- gnt
- Date
- 2005-10-31 03:58:36 -0500 (Mon, 31 Oct 2005)
Log Message
Fix SM-54: problems file FilePoller
Modified Paths
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();
}
}