fix for deadlock when initializing a SplitTable with a file of size 0, see also:

http://forum.yacy-websuche.de/viewtopic.php?p=18594#p18594

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6587 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 15 years ago
parent 763e0d447c
commit 4f1f4863c4

@ -191,7 +191,7 @@ public class SplitTable implements ObjectIndex, Iterable<Row.Entry> {
while (i.hasNext()) { while (i.hasNext()) {
entry = i.next(); entry = i.next();
ram = entry.getValue().longValue(); ram = entry.getValue().longValue();
if (ram > maxram) { if (maxf == null || ram > maxram) {
maxf = entry.getKey(); maxf = entry.getKey();
maxram = ram; maxram = ram;
} }
@ -199,16 +199,14 @@ public class SplitTable implements ObjectIndex, Iterable<Row.Entry> {
// open next biggest table // open next biggest table
t.remove(maxf); t.remove(maxf);
if (maxf != null) { f = new File(path, maxf);
f = new File(path, maxf); Log.logInfo("kelondroSplitTable", "opening partial eco table " + f);
Log.logInfo("kelondroSplitTable", "opening partial eco table " + f); try {
try { table = new Table(f, rowdef, EcoFSBufferSize, 0, this.useTailCache, this.exceed134217727);
table = new Table(f, rowdef, EcoFSBufferSize, 0, this.useTailCache, this.exceed134217727); } catch (RowSpaceExceededException e) {
} catch (RowSpaceExceededException e) { table = new Table(f, rowdef, 0, 0, false, this.exceed134217727);
table = new Table(f, rowdef, 0, 0, false, this.exceed134217727);
}
tables.put(maxf, table);
} }
tables.put(maxf, table);
} }
// init the thread pool for the keeperOf executor service // init the thread pool for the keeperOf executor service

Loading…
Cancel
Save