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(); + } + } + +}