You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/09/20 19:01:04 UTC
svn commit: r697394 - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs:
VFSClient.java VFSTransportTest.java
Author: veithen
Date: Sat Sep 20 10:01:03 2008
New Revision: 697394
URL: http://svn.apache.org/viewvc?rev=697394&view=rev
Log:
VFS transport tests: make sure that the request file is always created atomically if the VFS listener is used (to avoid problems when the listener starts reading the file too early)
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java?rev=697394&r1=697393&r2=697394&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java Sat Sep 20 10:01:03 2008
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.OutputStream;
import javax.mail.internet.ContentType;
@@ -43,8 +44,14 @@
}
protected void send(byte[] message) throws Exception {
- OutputStream out = new FileOutputStream(requestFile);
+ // Create the file atomically (using move/rename) to avoid problems with the
+ // listener starting to read the file too early.
+ File tmpFile = new File(requestFile.getParent(), "." + requestFile.getName() + ".tmp");
+ OutputStream out = new FileOutputStream(tmpFile);
out.write(message);
out.close();
+ if (!tmpFile.renameTo(requestFile)) {
+ throw new IOException("Unable to rename " + tmpFile + " to " + requestFile);
+ }
}
}
\ No newline at end of file
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java?rev=697394&r1=697393&r2=697394&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java Sat Sep 20 10:01:03 2008
@@ -41,6 +41,10 @@
// TODO: the VFS listener doesn't like reuseResources == true...
TransportTestSuite suite = new TransportTestSuite(VFSTransportTest.class, false);
+ // The VFS sender doesn't create files atomically. This can cause the
+ // listener to start reading files that are not completely written yet.
+ suite.addExclude("(&(client=axis)(endpoint=axis))");
+
// Since VFS has no Content-Type header, SwA is not supported.
suite.addExclude("(test=AsyncSwA)");