From 559f41a0012780371aa6c5847e7e56163a3456e5 Mon Sep 17 00:00:00 2001 From: orbiter Date: Fri, 8 Dec 2006 23:35:32 +0000 Subject: [PATCH] fix for http://www.yacy-forum.de/viewtopic.php?p=28607#28607 git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3059 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/index/indexContainer.java | 37 ++++++++-------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/source/de/anomic/index/indexContainer.java b/source/de/anomic/index/indexContainer.java index cc698572b..0d4331a8f 100644 --- a/source/de/anomic/index/indexContainer.java +++ b/source/de/anomic/index/indexContainer.java @@ -83,23 +83,21 @@ public class indexContainer extends kelondroRowSet { this.lastTimeWrote = updateTime; } - /* - public void addAllUnique(indexContainer c) { - // this method can be called if all entries in c are known to be unique with reference to - // the entries in this container; that means: there are no double occurrences anywhere - // in/and between c and this. - super.addAllUnique((kelondroRowCollection) c); - } public static final indexContainer mergeUnique(indexContainer a, boolean aIsClone, indexContainer b, boolean bIsClone) { if ((aIsClone) && (bIsClone)) { - if (a.size() > b.size()) return mergeUnique(a, b); else return mergeUnique(b, a); + if (a.size() > b.size()) return (indexContainer) mergeUnique(a, b); else return (indexContainer) mergeUnique(b, a); } - if (aIsClone) return mergeUnique(a, b); - if (bIsClone) return mergeUnique(b, a); - if (a.size() > b.size()) return mergeUnique(a, b); else return mergeUnique(b, a); + if (aIsClone) return (indexContainer) mergeUnique(a, b); + if (bIsClone) return (indexContainer) mergeUnique(b, a); + if (a.size() > b.size()) return (indexContainer) mergeUnique(a, b); else return (indexContainer) mergeUnique(b, a); + } + + public static Object mergeUnique(Object a, Object b) { + indexContainer c = (indexContainer) a; + c.addAllUnique((indexContainer) b); + return c; } - */ public indexRWIEntry put(indexRWIEntry entry) { assert entry.toKelondroEntry().objectsize() == super.rowdef.objectsize(); @@ -202,26 +200,19 @@ public class indexContainer extends kelondroRowSet { static { try { Class c = Class.forName("de.anomic.index.indexContainer"); - containerMergeMethod = c.getMethod("containerMerge", new Class[]{Object.class, Object.class}); + containerMergeMethod = c.getMethod("mergeUnique", new Class[]{Object.class, Object.class}); } catch (SecurityException e) { - System.out.println("Error while initializing containerMerge: " + e.getMessage()); + System.out.println("Error while initializing containerMerge.SecurityException: " + e.getMessage()); containerMergeMethod = null; } catch (ClassNotFoundException e) { - System.out.println("Error while initializing containerMerge: " + e.getMessage()); + System.out.println("Error while initializing containerMerge.ClassNotFoundException: " + e.getMessage()); containerMergeMethod = null; } catch (NoSuchMethodException e) { - System.out.println("Error while initializing containerMerge: " + e.getMessage()); + System.out.println("Error while initializing containerMerge.NoSuchMethodException: " + e.getMessage()); containerMergeMethod = null; } } - /* - public static Object containerMerge(Object a, Object b) { - indexContainer c = (indexContainer) a; - c.add((indexContainer) b, -1); - return c; - } - */ public static indexContainer joinContainer(Collection containers, long time, int maxDistance) { long stamp = System.currentTimeMillis();