diff --git a/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java b/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java index 7c7428e00..792d921ad 100644 --- a/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/ConcurrentUpdateSolrConnector.java @@ -329,6 +329,7 @@ public class ConcurrentUpdateSolrConnector implements SolrConnector { public Set existsByIds(Set ids) throws IOException { HashSet e = new HashSet(); if (ids == null || ids.size() == 0) return e; + if (ids.size() == 1) return existsById(ids.iterator().next()) ? ids : e; Set idsC = new HashSet(); for (String id: ids) { if (this.idCache.has(ASCII.getBytes(id))) {cacheSuccessSign(); e.add(id); continue;} diff --git a/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java b/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java index 282ab65d0..c6d51e8ec 100644 --- a/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/MirrorSolrConnector.java @@ -348,6 +348,8 @@ public class MirrorSolrConnector extends AbstractSolrConnector implements SolrCo @Override public Set existsByIds(Set ids) throws IOException { + if (ids == null || ids.size() == 0) return new HashSet(); + if (ids.size() == 1) return existsById(ids.iterator().next()) ? ids : new HashSet(); if (this.solr0 != null && this.solr1 == null) return this.solr0.existsByIds(ids); if (this.solr0 == null && this.solr1 != null) return this.solr1.existsByIds(ids); Set s = new HashSet(); diff --git a/source/net/yacy/peers/Transmission.java b/source/net/yacy/peers/Transmission.java index 47799fd7c..44fd4a807 100644 --- a/source/net/yacy/peers/Transmission.java +++ b/source/net/yacy/peers/Transmission.java @@ -25,7 +25,6 @@ package net.yacy.peers; import java.util.ArrayList; -import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -164,7 +163,7 @@ public class Transmission { final ReferenceContainer c = (remaining >= container.size()) ? container : trimContainer(container, remaining); // iterate through the entries in the container and check if the reference is in the repository final List notFoundx = new ArrayList(); - Collection testids = new HashSet(); + Set testids = new HashSet(); Iterator i = c.entries(); while (i.hasNext()) { final WordReference e = i.next(); diff --git a/source/net/yacy/search/Switchboard.java b/source/net/yacy/search/Switchboard.java index e392cab37..c828ac3ad 100644 --- a/source/net/yacy/search/Switchboard.java +++ b/source/net/yacy/search/Switchboard.java @@ -1585,7 +1585,7 @@ public final class Switchboard extends serverSwitch { * @param ids a collection of url hashes * @return a map from the hash id to: if it exists, the name of the database, otherwise null */ - public Map urlExists(final Collection ids) { + public Map urlExists(final Set ids) { Set e = this.index.exists(ids); Map m = new HashMap(); for (String id: ids) { @@ -2905,7 +2905,7 @@ public final class Switchboard extends serverSwitch { // stacking may fail because of double occurrences of that url. Therefore // we must wait here until the url has actually disappeared int t = 100; - Collection ids = new ArrayList(1); ids.add(ASCII.String(urlhash)); + Set ids = new HashSet(1); ids.add(ASCII.String(urlhash)); while (t-- > 0 && this.index.exists(ids).size() > 0) { try {Thread.sleep(100);} catch (final InterruptedException e) {} ConcurrentLog.fine("Switchboard", "STACKURL: waiting for deletion, t=" + t); diff --git a/source/net/yacy/search/index/Fulltext.java b/source/net/yacy/search/index/Fulltext.java index 58f3e3a8f..39ed4d89a 100644 --- a/source/net/yacy/search/index/Fulltext.java +++ b/source/net/yacy/search/index/Fulltext.java @@ -617,9 +617,10 @@ public final class Fulltext { * @param ids * @return a set of ids which exist in the database */ - public Set exists(Collection ids) { + public Set exists(Set ids) { HashSet e = new HashSet(); if (ids == null || ids.size() == 0) return e; + if (ids.size() == 1) return exists(ids.iterator().next()) ? ids : e; Set idsC = new HashSet(); idsC.addAll(ids); if (this.urlIndexFile != null) { diff --git a/source/net/yacy/search/index/Segment.java b/source/net/yacy/search/index/Segment.java index 918458837..df479736b 100644 --- a/source/net/yacy/search/index/Segment.java +++ b/source/net/yacy/search/index/Segment.java @@ -29,7 +29,6 @@ package net.yacy.search.index; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; -import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -443,7 +442,7 @@ public class Segment { * @param ids * @return a set of ids which exist in the database */ - public Set exists(final Collection ids) { + public Set exists(final Set ids) { return this.fulltext.exists(ids); }