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)");