diff --git a/source/net/yacy/cora/sorting/WeakPriorityBlockingQueue.java b/source/net/yacy/cora/sorting/WeakPriorityBlockingQueue.java index e7200eff9..e5f12e8d5 100644 --- a/source/net/yacy/cora/sorting/WeakPriorityBlockingQueue.java +++ b/source/net/yacy/cora/sorting/WeakPriorityBlockingQueue.java @@ -235,7 +235,7 @@ public class WeakPriorityBlockingQueue implements Serializable { */ public Element element(final int position, long time) throws InterruptedException { if (this.drained == null) return null; - long timeout = System.currentTimeMillis() + time; + long timeout = time == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + time; if (position < this.drained.size()) { return this.drained.get(position); } diff --git a/source/net/yacy/crawler/Balancer.java b/source/net/yacy/crawler/Balancer.java index bd99c53a3..bf6491d75 100644 --- a/source/net/yacy/crawler/Balancer.java +++ b/source/net/yacy/crawler/Balancer.java @@ -175,7 +175,7 @@ public class Balancer { // first find a list of url hashes that shall be deleted final HandleSet urlHashes = new RowHandleSet(this.urlFileIndex.row().primaryKeyLength, Base64Order.enhancedCoder, 100); - final long terminate = (timeout > 0) ? System.currentTimeMillis() + timeout : Long.MAX_VALUE; + final long terminate = timeout == Long.MAX_VALUE ? Long.MAX_VALUE : (timeout > 0) ? System.currentTimeMillis() + timeout : Long.MAX_VALUE; synchronized (this) { final Iterator i = this.urlFileIndex.rows(); Row.Entry rowEntry; @@ -351,7 +351,7 @@ public class Balancer { if (domainList.isEmpty()) return new ArrayList(0); maxcount = Math.min(maxcount, domainList.size()); final ArrayList cel = new ArrayList(maxcount); - long timeout = System.currentTimeMillis() + maxtime; + long timeout = maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; for (int i = 0; i < maxcount; i++) { final byte[] urlhash = domainList.getOne(i); if (urlhash == null) continue; diff --git a/source/net/yacy/kelondro/data/word/WordReferenceFactory.java b/source/net/yacy/kelondro/data/word/WordReferenceFactory.java index 80d158693..8af0a2b62 100644 --- a/source/net/yacy/kelondro/data/word/WordReferenceFactory.java +++ b/source/net/yacy/kelondro/data/word/WordReferenceFactory.java @@ -74,7 +74,7 @@ public class WordReferenceFactory implements ReferenceFactory, Se */ public static final ByteBuffer compressIndex(final ReferenceContainer inputContainer, final ReferenceContainer excludeContainer, final long maxtime) { // collect references according to domains - final long timeout = (maxtime < 0) ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; + final long timeout = maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : (maxtime < 0) ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; final TreeMap doms = new TreeMap(); synchronized (inputContainer) { final Iterator i = inputContainer.entries(); diff --git a/source/net/yacy/kelondro/data/word/WordReferenceVars.java b/source/net/yacy/kelondro/data/word/WordReferenceVars.java index 433179f35..8fab41858 100644 --- a/source/net/yacy/kelondro/data/word/WordReferenceVars.java +++ b/source/net/yacy/kelondro/data/word/WordReferenceVars.java @@ -500,7 +500,7 @@ public class WordReferenceVars extends AbstractReference implements WordReferenc worker[i] = new TransformWorker(this.out, this.maxtime, this.local); worker[i].start(); } - long timeout = System.currentTimeMillis() + this.maxtime; + long timeout = this.maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + this.maxtime; // fill the queue int p = this.container.size(); @@ -554,7 +554,7 @@ public class WordReferenceVars extends AbstractReference implements WordReferenc @Override public void run() { Row.Entry entry; - long timeout = System.currentTimeMillis() + this.maxtime; + long timeout = this.maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + this.maxtime; try { while ((entry = this.in.take()) != WordReferenceRow.poisonRowEntry) { this.out.put(new WordReferenceVars(new WordReferenceRow(entry), local)); diff --git a/source/net/yacy/peers/Dispatcher.java b/source/net/yacy/peers/Dispatcher.java index c00297300..f14f83071 100644 --- a/source/net/yacy/peers/Dispatcher.java +++ b/source/net/yacy/peers/Dispatcher.java @@ -174,7 +174,7 @@ public class Dispatcher { int refcount = 0; // first select the container - final long timeout = (maxtime < 0) ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; + final long timeout = maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : (maxtime < 0) ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; while ( (containers.size() < maxContainerCount) && (refcount < maxReferenceCount) && diff --git a/source/net/yacy/peers/graphics/WebStructureGraph.java b/source/net/yacy/peers/graphics/WebStructureGraph.java index c61f8bdeb..f20f8f8f7 100644 --- a/source/net/yacy/peers/graphics/WebStructureGraph.java +++ b/source/net/yacy/peers/graphics/WebStructureGraph.java @@ -487,7 +487,7 @@ public class WebStructureGraph { final long time) { // we iterate over all structure entries. // one structure entry has information that a specific host links to a list of other hosts - final long timeout = System.currentTimeMillis() + time; + final long timeout = time == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + time; byte[] term; HostReference hr; WebStructureGraph.StructureEntry sentry; diff --git a/source/net/yacy/search/query/SearchEvent.java b/source/net/yacy/search/query/SearchEvent.java index f6ec0b5ba..b561f0863 100644 --- a/source/net/yacy/search/query/SearchEvent.java +++ b/source/net/yacy/search/query/SearchEvent.java @@ -479,7 +479,7 @@ public final class SearchEvent { timer = System.currentTimeMillis(); // apply all constraints - long timeout = System.currentTimeMillis() + maxtime; + long timeout = maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; try { WordReferenceVars iEntry; long remaining; @@ -1280,7 +1280,7 @@ public final class SearchEvent { public ResultEntry oneResult(final int item, final long timeout) { // check if we already retrieved this item // (happens if a search pages is accessed a second time) - final long finishTime = System.currentTimeMillis() + timeout; + final long finishTime = timeout == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + timeout; EventTracker.update(EventTracker.EClass.SEARCH, new ProfilingGraph.EventSearch(this.query.id(true), SearchEventType.ONERESULT, "started, item = " + item + ", available = " + this.getResultCount(), 0, 0), false); // wait until a local solr is finished, we must do that to be able to check if we need more @@ -1325,7 +1325,7 @@ public final class SearchEvent { } public ArrayList> completeResults(final long waitingtime) { - final long timeout = System.currentTimeMillis() + waitingtime; + final long timeout = waitingtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + waitingtime; int i = 0; while (this.resultList.sizeAvailable() < this.query.neededResults() && System.currentTimeMillis() < timeout) { oneResult(i++, timeout - System.currentTimeMillis()); @@ -1451,7 +1451,7 @@ public final class SearchEvent { int c; float q, min = Float.MAX_VALUE, max = Float.MIN_VALUE; int ic = maxcount; - long timeout = System.currentTimeMillis() + maxtime; + long timeout = maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + maxtime; while ( ic-- > 0 && i.hasNext() ) { word = i.next(); if ( word == null ) { diff --git a/source/net/yacy/search/ranking/ReferenceOrder.java b/source/net/yacy/search/ranking/ReferenceOrder.java index c92dee88c..4e4c35606 100644 --- a/source/net/yacy/search/ranking/ReferenceOrder.java +++ b/source/net/yacy/search/ranking/ReferenceOrder.java @@ -109,7 +109,7 @@ public class ReferenceOrder { // fill the queue WordReferenceVars iEntry; int p = 0; - long timeout = System.currentTimeMillis() + this.maxtime; + long timeout = this.maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + this.maxtime; try { while ((iEntry = vars.take()) != WordReferenceVars.poison) { worker[p % this.threads].add(iEntry); @@ -163,7 +163,7 @@ public class ReferenceOrder { String dom; Integer count; final Integer int1 = 1; - long timeout = System.currentTimeMillis() + this.maxtime; + long timeout = this.maxtime == Long.MAX_VALUE ? Long.MAX_VALUE : System.currentTimeMillis() + this.maxtime; while ((iEntry = this.decodedEntries.take()) != WordReferenceVars.poison) { // find min/max if (ReferenceOrder.this.min == null) ReferenceOrder.this.min = iEntry.clone(); else ReferenceOrder.this.min.min(iEntry);