mirror of
https://github.com/yacy/yacy_search_server.git
synced 2025-06-29 05:26:07 -04:00
- fix for broken news queue during iteration
- enhancement for searching special news (usage of new iterator) git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3957 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
source/de/anomic
@ -292,7 +292,7 @@ public final class kelondroStack extends kelondroRecords {
|
||||
Handle h = getHandle(side);
|
||||
if (h == null) return null;
|
||||
if (dist >= size()) return null; // that would exceed the stack
|
||||
while (dist-- > 0) h = getNode(h, false).getOHHandle(dir); // track through elements
|
||||
while ((dist-- > 0) && (h != null)) h = getNode(h, false).getOHHandle(dir); // track through elements
|
||||
if (h == null) return null; else return getNode(h, true);
|
||||
}
|
||||
|
||||
|
@ -402,30 +402,13 @@ public class yacyNewsPool {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
public yacyNewsRecord get(int dbKey, int element) throws IOException {
|
||||
yacyNewsQueue queue = switchQueue(dbKey);
|
||||
yacyNewsRecord record = null;
|
||||
int s;
|
||||
synchronized (queue) {
|
||||
while ((record == null) && ((s = queue.size()) > 0)) {
|
||||
record = queue.top(element);
|
||||
if (record == null) {
|
||||
queue.pop(element);
|
||||
if (queue.size() == s) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return record;
|
||||
}
|
||||
*/
|
||||
|
||||
public synchronized yacyNewsRecord getSpecific(int dbKey, String category, String key, String value) throws IOException {
|
||||
yacyNewsQueue queue = switchQueue(dbKey);
|
||||
yacyNewsRecord record;
|
||||
String s;
|
||||
for (int i = queue.size() - 1; i >= 0; i--) {
|
||||
record = queue.top(i);
|
||||
Iterator i = queue.records(true);
|
||||
while (i.hasNext()) {
|
||||
record = (yacyNewsRecord) i.next();
|
||||
if ((record != null) && (record.category().equals(category))) {
|
||||
s = (String) record.attributes().get(key);
|
||||
if ((s != null) && (s.equals(value))) return record;
|
||||
|
@ -164,6 +164,7 @@ public class yacyNewsQueue {
|
||||
}
|
||||
|
||||
public Iterator records(boolean up) {
|
||||
// iterates yacyNewsRecord-type objects
|
||||
return new newsIterator(up);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user