[ 
https://issues.apache.org/jira/browse/JCS-156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebb updated JCS-156:
---------------------
    Comment: was deleted

(was: I agree - there are lots of places where it is assumed that a block 
number is an int.
Changing this would break BC unless new methods were added, and anyway that 
would not stop existing code from breaking.

Seems to me the simplest fix (short of a complete redesign) is to detect the 
problem earlier and throw a better Exception.)

> 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: 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