mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
fix for ConcurrentModificationException at de.anomic.index.indexContainerHeap$heapCacheIterator.next(indexContainerHeap.java:324)
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5300 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
parent
103ad2a437
commit
0f9c0bd0d5
|
@ -314,25 +314,29 @@ public final class indexContainerHeap {
|
|||
return new heapCacheIterator((String) secondWordHash, rot);
|
||||
}
|
||||
|
||||
public boolean hasNext() {
|
||||
public synchronized boolean hasNext() {
|
||||
if (rot) return true;
|
||||
return iterator.hasNext();
|
||||
}
|
||||
|
||||
public indexContainer next() {
|
||||
if (iterator.hasNext()) {
|
||||
public synchronized indexContainer next() {
|
||||
synchronized(iterator) {
|
||||
if (iterator.hasNext()) {
|
||||
return (iterator.next()).topLevelClone();
|
||||
}
|
||||
// rotation iteration
|
||||
if (!rot) {
|
||||
return null;
|
||||
}
|
||||
iterator = cache.values().iterator();
|
||||
return (iterator.next()).topLevelClone();
|
||||
}
|
||||
// rotation iteration
|
||||
if (!rot) {
|
||||
return null;
|
||||
}
|
||||
iterator = cache.values().iterator();
|
||||
return (iterator.next()).topLevelClone();
|
||||
}
|
||||
|
||||
public void remove() {
|
||||
iterator.remove();
|
||||
public synchronized void remove() {
|
||||
synchronized(iterator) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
public Iterator<indexContainer> iterator() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user