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 2016/02/06 18:56:22 UTC
svn commit: r1728860 - in /commons/proper/jcs/trunk:
commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/
commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/
src/changes/
Author: tv
Date: Sat Feb 6 17:56:22 2016
New Revision: 1728860
URL: http://svn.apache.org/viewvc?rev=1728860&view=rev
Log:
JCS-159 Fix: BlockDiskCache overwrites data after loading from disk
Modified:
commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java
commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCacheUnitTestAbstract.java
commons/proper/jcs/trunk/src/changes/changes.xml
Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java?rev=1728860&r1=1728859&r2=1728860&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java Sat Feb 6 17:56:22 2016
@@ -21,7 +21,6 @@ package org.apache.commons.jcs.auxiliary
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.Serializable;
@@ -86,10 +85,10 @@ public class BlockDisk
* <p>
* @param file
* @param elementSerializer
- * @throws FileNotFoundException
+ * @throws IOException
*/
public BlockDisk( File file, IElementSerializer elementSerializer )
- throws FileNotFoundException
+ throws IOException
{
this( file, DEFAULT_BLOCK_SIZE_BYTES, elementSerializer );
}
@@ -99,10 +98,10 @@ public class BlockDisk
* <p>
* @param file
* @param blockSizeBytes
- * @throws FileNotFoundException
+ * @throws IOException
*/
public BlockDisk( File file, int blockSizeBytes )
- throws FileNotFoundException
+ throws IOException
{
this( file, blockSizeBytes, new StandardSerializer() );
}
@@ -113,14 +112,15 @@ public class BlockDisk
* @param file
* @param blockSizeBytes
* @param elementSerializer
- * @throws FileNotFoundException
+ * @throws IOException
*/
public BlockDisk( File file, int blockSizeBytes, IElementSerializer elementSerializer )
- throws FileNotFoundException
+ throws IOException
{
this.filepath = file.getAbsolutePath();
RandomAccessFile raf = new RandomAccessFile( filepath, "rw" );
this.fc = raf.getChannel();
+ this.numberOfBlocks.set((int) Math.ceil(1f * this.fc.size() / blockSizeBytes));
if ( log.isInfoEnabled() )
{
Modified: commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCacheUnitTestAbstract.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCacheUnitTestAbstract.java?rev=1728860&r1=1728859&r2=1728860&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCacheUnitTestAbstract.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDiskCacheUnitTestAbstract.java Sat Feb 6 17:56:22 2016
@@ -327,6 +327,32 @@ public abstract class BlockDiskCacheUnit
oneLoadFromDisk();
}
}
+
+ public void testAppendToDisk() throws Exception
+ {
+ String cacheName = "testAppendToDisk";
+ BlockDiskCacheAttributes cattr = getCacheAttributes();
+ cattr.setCacheName(cacheName);
+ cattr.setMaxKeySize(100);
+ cattr.setBlockSizeBytes(500);
+ cattr.setDiskPath("target/test-sandbox/BlockDiskCacheUnitTest");
+ BlockDiskCache<String, X> diskCache = new BlockDiskCache<String, X>(cattr);
+ diskCache.removeAll();
+ X value1 = new X();
+ value1.string = "1234567890";
+ X value2 = new X();
+ value2.string = "0987654321";
+ diskCache.update(new CacheElement<String, X>(cacheName, "1", value1));
+ diskCache.dispose();
+ diskCache = new BlockDiskCache<String, X>(cattr);
+ diskCache.update(new CacheElement<String, X>(cacheName, "2", value2));
+ diskCache.dispose();
+ diskCache = new BlockDiskCache<String, X>(cattr);
+ assertTrue(diskCache.verifyDisk());
+ assertEquals(2, diskCache.getKeySet().size());
+ assertEquals(value1.string, diskCache.get("1").getVal().string);
+ assertEquals(value2.string, diskCache.get("2").getVal().string);
+ }
public void oneLoadFromDisk() throws Exception
{
Modified: commons/proper/jcs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/changes/changes.xml?rev=1728860&r1=1728859&r2=1728860&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/changes/changes.xml (original)
+++ commons/proper/jcs/trunk/src/changes/changes.xml Sat Feb 6 17:56:22 2016
@@ -20,6 +20,9 @@
</properties>
<body>
<release version="2.0" date="unreleased" description="JDK 1.6 based major release">
+ <action issue="JCS-159" dev="tv" type="fix" due-to="Wiktor Niesiobedzki">
+ Fix: BlockDiskCache overwrites data after loading from disk
+ </action>
<action dev="tv" type="fix" due-to="Mat Jaggard">
Fix Javadoc for Java 8
</action>