Author: ogusakov
Date: Thu Sep 11 13:11:59 2008
New Revision: 694451

URL: http://svn.apache.org/viewvc?rev=694451&view=rev
Log:
added failing nio test

Added:
    
maven/sandbox/trunk/mercury/mercury-util/src/test/java/org/apache/maven/mercury/util/NioTest.java

Added: 
maven/sandbox/trunk/mercury/mercury-util/src/test/java/org/apache/maven/mercury/util/NioTest.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-util/src/test/java/org/apache/maven/mercury/util/NioTest.java?rev=694451&view=auto
==============================================================================
--- 
maven/sandbox/trunk/mercury/mercury-util/src/test/java/org/apache/maven/mercury/util/NioTest.java
 (added)
+++ 
maven/sandbox/trunk/mercury/mercury-util/src/test/java/org/apache/maven/mercury/util/NioTest.java
 Thu Sep 11 13:11:59 2008
@@ -0,0 +1,68 @@
+package org.apache.maven.mercury.util;
+
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
+import java.nio.channels.OverlappingFileLockException;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class NioTest
+    extends TestCase
+{
+  
+  public void testNio()
+  {
+    boolean ok = false;
+    
+    try
+    {
+      File file = File.createTempFile( "test-nio-", "-file" );
+      
+      String fn = file.getAbsolutePath();
+      
+      File f1 = new File( fn ); 
+      FileChannel c1 = new RandomAccessFile( f1, "rw").getChannel();
+  
+      FileLock l1 = c1.lock();
+      assertNotNull( "cannot obtain even the first lock", l1 );
+      
+      File f2 = new File( fn ); 
+      FileChannel c2 = new RandomAccessFile( f2, "rw").getChannel();
+      FileLock l2 = null;
+      try
+      {
+          l2 = c2.tryLock();
+          
+          if( l2 == null )
+            throw new OverlappingFileLockException();
+          
+          l2.release();
+      }
+      catch (OverlappingFileLockException e)
+      {
+          ok = true;
+      }
+  
+      l1.release();
+      c1.close();
+      
+      file.delete();
+
+      assertTrue( "java.nio does not work !!", ok );
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+    }
+  }
+
+}


Reply via email to