You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2015/04/01 17:15:25 UTC
svn commit: r1670666 - in /commons/proper/jcs/trunk/commons-jcs-core/src:
main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java
test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java
Author: tv
Date: Wed Apr 1 15:15:24 2015
New Revision: 1670666
URL: http://svn.apache.org/r1670666
Log:
Fix JCS-146: IndexedDiskCache: Mismatched memory and disk length (0) for [DED: pos = 63802 len = 9658] during optimization
Modified:
commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java
commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java
Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java?rev=1670666&r1=1670665&r2=1670666&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDisk.java Wed Apr 1 15:15:24 2015
@@ -151,6 +151,7 @@ class IndexedDisk
{
// chunk it
int chunkSize = Math.min( remaining, buffer.capacity() );
+ buffer.limit(chunkSize);
fc.read(buffer, readPos);
buffer.flip();
fc.write(buffer, writePos);
Modified: commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java?rev=1670666&r1=1670665&r2=1670666&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java Wed Apr 1 15:15:24 2015
@@ -42,10 +42,10 @@ public class IndexedDiskCacheOptimizatio
{
// SETUP
int removeCount = 50;
-
+
IndexedDiskCacheAttributes cattr = new IndexedDiskCacheAttributes();
cattr.setCacheName( "testOptimization" );
- cattr.setMaxKeySize( removeCount * 3 );
+ cattr.setMaxKeySize( removeCount * 2 );
cattr.setOptimizeAtRemoveCount( removeCount );
cattr.setMaxRecycleBinSize( removeCount * 3 );
cattr.setDiskPath( "target/test-sandbox/testOptimization" );
@@ -53,7 +53,7 @@ public class IndexedDiskCacheOptimizatio
disk.removeAll();
- int numberToInsert = removeCount * 2;
+ int numberToInsert = removeCount * 3;
ICacheElement<Integer, DiskTestObject>[] elements = DiskTestObjectUtil
.createCacheElementsWithTestObjectsOfVariableSizes( numberToInsert, cattr.getCacheName() );
@@ -61,6 +61,7 @@ public class IndexedDiskCacheOptimizatio
{
disk.processUpdate( elements[i] );
}
+
Thread.sleep( 1000 );
long sizeBeforeRemove = disk.getDataFileSize();
@@ -72,9 +73,10 @@ public class IndexedDiskCacheOptimizatio
{
disk.processRemove( Integer.valueOf( i ) );
}
-
+
SleepUtil.sleepAtLeast( 1000 );
+ disk.optimizeFile();
// VERIFY
long sizeAfterRemove = disk.getDataFileSize();
long expectedSizeAfterRemove = DiskTestObjectUtil.totalSize( elements, removeCount, elements.length );