[ https://issues.apache.org/jira/browse/JCS-88?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Vandahl resolved JCS-88. ------------------------------- Resolution: Fixed Fix Version/s: jcs-1.4-dev Added the test contained in the patch. The problem was already fixed. > Block cache fails to validate a cache file on startup when it contains > elements with more than 2 blocks. > -------------------------------------------------------------------------------------------------------- > > Key: JCS-88 > URL: https://issues.apache.org/jira/browse/JCS-88 > Project: Commons JCS > Issue Type: Bug > Affects Versions: jcs-1.3 > Reporter: Diego Rivera > Assignee: Thomas Vandahl > Fix For: jcs-1.4-dev > > Attachments: jcs-1.3a-JCS-87-patch.patch > > Original Estimate: 0h > Remaining Estimate: 0h > > The arithmetic for calculating block sizes is wrong. The code adds a term > that shouldn't be considered at that point. For each block that needs to be > written, the size of the block is currently calculated as: > int chunkSize = Math.min( totalUsed + maxChunkSize, totalBytes - totalUsed ) > The term "totalUsed" should not be added to maxChunkSize, since the intent is > to construct a chunk that's either as big as is allowed (maxChunkSize) or as > big as the remaining bytes (totalBytes - totalUsed). Thus, the correct > calculation should be: > int chunkSize = Math.min( maxChunkSize, totalBytes - totalUsed ) > The problem occurs in > src/java/org/apache/jcs/auxiliary/disk/block/BlockDisk.java, line 196, inside > byte[][] getBlockChunks(byte[] complete, int numBlocksNeeded). > A patch has been devised and will be submitted as a comment (since > attachments aren't possible at this point). I still need to take the time to > devise a unit test for this since the existing unit test passed without issue. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira