You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/09/26 03:55:59 UTC
svn commit: r1001339 -
/directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java
Author: seelmann
Date: Sun Sep 26 01:55:58 2010
New Revision: 1001339
URL: http://svn.apache.org/viewvc?rev=1001339&view=rev
Log:
Temporary fix to close RandomAccessFile and FileChannel, has to be moved to finally block
Modified:
directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java
Modified: directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java?rev=1001339&r1=1001338&r2=1001339&view=diff
==============================================================================
--- directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java (original)
+++ directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java Sun Sep 26 01:55:58 2010
@@ -480,6 +480,7 @@ public class SingleFileLdifPartition ext
tempBuf.transferTo( 0, tempBuf.size(), mainChannel );
tempBuf.truncate( 0 );
tempBuf.close();
+ tmpMovFile.close();
tmpFile.delete();
// change offset of the copied entries
@@ -539,7 +540,8 @@ public class SingleFileLdifPartition ext
}
else
{
- FileChannel tmpBufChannel = createTempBuf();
+ RandomAccessFile tempBufFile = createTempFile();
+ FileChannel tmpBufChannel = tempBufFile.getChannel();
FileChannel mainChannel = ldifFile.getChannel();
long count = ( ldifFile.length() - entryOffset.getEnd() );
@@ -558,6 +560,8 @@ public class SingleFileLdifPartition ext
tmpBufChannel.transferTo( 0, tmpBufChannel.size(), mainChannel );
tmpBufChannel.truncate( 0 );
+ tmpBufChannel.close();
+ tempBufFile.close();
deleteTempFiles();
}
}
@@ -731,7 +735,8 @@ public class SingleFileLdifPartition ext
try
{
- FileChannel tmpBufChannel = createTempBuf();
+ RandomAccessFile tempBufFile = createTempFile();
+ FileChannel tmpBufChannel = tempBufFile.getChannel();
FileChannel mainChannel = ldifFile.getChannel();
long count = ( ldifFile.length() - aboveEntryOffset.getEnd() );
@@ -753,7 +758,7 @@ public class SingleFileLdifPartition ext
tmpBufChannel.transferTo( 0, tmpBufChannel.size(), mainChannel );
tmpBufChannel.truncate( 0 );
tmpBufChannel.close();
-
+ tempBufFile.close();
deleteTempFiles();
}
catch ( IOException e )
@@ -812,7 +817,8 @@ public class SingleFileLdifPartition ext
*/
// modified entry size got changed and is in the middle somewhere
{
- FileChannel tmpBufChannel = createTempBuf();
+ RandomAccessFile tempBufFile = createTempFile();
+ FileChannel tmpBufChannel = tempBufFile.getChannel();
FileChannel mainChannel = ldifFile.getChannel();
long count = ( ldifFile.length() - entryOffset.getEnd() );
@@ -832,7 +838,7 @@ public class SingleFileLdifPartition ext
tmpBufChannel.transferTo( 0, tmpBufChannel.size(), mainChannel );
tmpBufChannel.truncate( 0 );
tmpBufChannel.close();
-
+ tempBufFile.close();
deleteTempFiles();
}
}
@@ -1015,7 +1021,7 @@ public class SingleFileLdifPartition ext
/** a temporary file used for swapping contents while performing update operations */
- private FileChannel createTempBuf() throws IOException
+ private RandomAccessFile createTempFile() throws IOException
{
synchronized ( lock )
{
@@ -1024,7 +1030,7 @@ public class SingleFileLdifPartition ext
RandomAccessFile tempBufFile = new RandomAccessFile( tmpFile.getAbsolutePath(), "rws" );
tempBufFile.setLength( 0 );
- return tempBufFile.getChannel();
+ return tempBufFile;
}
}