[ 
https://issues.apache.org/jira/browse/JCS-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15337996#comment-15337996
 ] 

Sebb commented on JCS-156:
--------------------------

Good catch; my original patch did not actually work... oops!

Fixed here:

URL: http://svn.apache.org/viewvc?rev=1749070&view=rev
Log:
Need to cast before doing the calculation

Modified:
    
commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/disk/block/BlockDisk.java


> BlockDiskCache is limited to 2GB.
> ---------------------------------
>
>                 Key: JCS-156
>                 URL: https://issues.apache.org/jira/browse/JCS-156
>             Project: Commons JCS
>          Issue Type: Bug
>          Components: Composite Cache
>    Affects Versions: jcs-2.0-beta-1
>            Reporter: Alexander Malyshev
>            Assignee: Thomas Vandahl
>         Attachments: BlockDisk-calculateByteOffsetPatch.patch, jcs.patch
>
>
> There is a bug in BlockDiskCache which makes it limited to 2GB in size. If I 
> try to write more, I'm getting the following exception:
> Exception in thread "CacheEventQueue.QProcessor-sliderCache" 
> java.lang.IllegalArgumentException: Negative position
>       at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:754)
>       at 
> org.apache.commons.jcs.auxiliary.disk.block.BlockDisk.write(BlockDisk.java:216)
>       at 
> org.apache.commons.jcs.auxiliary.disk.block.BlockDiskCache.processUpdate(BlockDiskCache.java:394)
>       at 
> org.apache.commons.jcs.auxiliary.AbstractAuxiliaryCacheEventLogging.updateWithEventLogging(AbstractAuxiliaryCacheEventLogging.java:65)
>       at 
> org.apache.commons.jcs.auxiliary.disk.AbstractDiskCache.doUpdate(AbstractDiskCache.java:804)
>       at 
> org.apache.commons.jcs.auxiliary.disk.AbstractDiskCache$MyCacheListener.handlePut(AbstractDiskCache.java:662)
>       at 
> org.apache.commons.jcs.engine.AbstractCacheEventQueue$PutEvent.doRun(AbstractCacheEventQueue.java:350)
>       at 
> org.apache.commons.jcs.engine.AbstractCacheEventQueue$AbstractCacheEvent.run(AbstractCacheEventQueue.java:269)
>       at 
> org.apache.commons.jcs.engine.CacheEventQueue$QProcessor.run(CacheEventQueue.java:304)
> The reason is that method calculateByteOffsetForBlock in BlockDisk class 
> returns int instead of long.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to