From 93376acdcae9396d106d96f8a88f8b910e1b00b6 Mon Sep 17 00:00:00 2001 From: orbiter Date: Mon, 14 Apr 2008 03:49:02 +0000 Subject: [PATCH] fixed a bad chunkcache limit check which could have caused ArrayIndexOutOfBoundsExceptions git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@4695 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/kelondro/kelondroRowCollection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/de/anomic/kelondro/kelondroRowCollection.java b/source/de/anomic/kelondro/kelondroRowCollection.java index a6bac0988..08a090687 100644 --- a/source/de/anomic/kelondro/kelondroRowCollection.java +++ b/source/de/anomic/kelondro/kelondroRowCollection.java @@ -257,7 +257,7 @@ public class kelondroRowCollection { assert (index * rowdef.objectsize < chunkcache.length); if ((chunkcache == null) || (rowdef == null)) return null; // case may appear during shutdown if (index >= chunkcount) return null; - if (index * rowdef.objectsize >= chunkcache.length) return null; + if ((index + 1) * rowdef.objectsize > chunkcache.length) return null; // the whole chunk does not fit into the chunkcache this.lastTimeRead = System.currentTimeMillis(); byte[] b = new byte[this.rowdef.width(0)]; System.arraycopy(chunkcache, index * rowdef.objectsize, b, 0, b.length); @@ -270,7 +270,7 @@ public class kelondroRowCollection { assert (index * rowdef.objectsize < chunkcache.length); if ((chunkcache == null) || (rowdef == null)) return null; // case may appear during shutdown if (index >= chunkcount) return null; - if (index * rowdef.objectsize >= chunkcache.length) return null; + if ((index + 1) * rowdef.objectsize > chunkcache.length) return null; // the whole chunk does not fit into the chunkcache this.lastTimeRead = System.currentTimeMillis(); return rowdef.newEntry(chunkcache, index * rowdef.objectsize, true); }