aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2017-09-07 20:05:56 +0200
committerGitHub <noreply@github.com>2017-09-07 20:05:56 +0200
commit9886b87286a16c8385e9642d6f864157cec9ce9d (patch)
treedfc2c922fc65527e8a0f6103ca48bc906f1ed69b
parent5efb70634240624efe29bc5a556c0d8cdb11b2c8 (diff)
parentacdac83a67c1b0bb84861a8ad32b4ecbac219606 (diff)
Merge pull request #3363 from vespa-engine/bratseth/create-mock-issues-on-demand
Bratseth/create mock issues on demand
-rw-r--r--component/src/main/java/com/yahoo/component/provider/ListenableFreezableClass.java1
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/QueryPacketData.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java52
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Hit.java120
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/LoggingIssues.java18
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/AbstractConcreteDocumentFactory.java5
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Accesses.java3
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Call.java14
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/CallStack.java33
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java2
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocprocService.java17
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocumentOperationWrapper.java6
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java16
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/HandledProcessingException.java3
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Processing.java8
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/ProcessingEndpoint.java6
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/SimpleDocumentProcessor.java8
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/TransientFailureException.java4
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadManager.java3
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java3
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java3
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java4
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java4
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java2
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java8
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/proxy/SchemaMap.java10
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/util/JoinerDocumentProcessor.java5
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/util/SplitterDocumentProcessor.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/collections/ArraySet.java5
30 files changed, 193 insertions, 176 deletions
diff --git a/component/src/main/java/com/yahoo/component/provider/ListenableFreezableClass.java b/component/src/main/java/com/yahoo/component/provider/ListenableFreezableClass.java
index e4094e672b9..e1e638234f4 100644
--- a/component/src/main/java/com/yahoo/component/provider/ListenableFreezableClass.java
+++ b/component/src/main/java/com/yahoo/component/provider/ListenableFreezableClass.java
@@ -9,7 +9,6 @@ import java.util.concurrent.Executor;
* A convenience superclass for listenable freezables.
*
* @author bratseth
- * @since 5.1.13
*/
public class ListenableFreezableClass extends FreezableClass implements ListenableFreezable {
diff --git a/container-search/src/main/java/com/yahoo/fs4/QueryPacketData.java b/container-search/src/main/java/com/yahoo/fs4/QueryPacketData.java
index e54f526f709..673b9cc0c47 100644
--- a/container-search/src/main/java/com/yahoo/fs4/QueryPacketData.java
+++ b/container-search/src/main/java/com/yahoo/fs4/QueryPacketData.java
@@ -8,7 +8,7 @@ import java.nio.ByteBuffer;
* fetch for a Vespa hit. Used to avoid to tagging Vespa summary hits with
* the entire query as an immutable.
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
*/
public final class QueryPacketData {
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java
index 07d62e242e7..8181787e909 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/Docsum.java
@@ -9,7 +9,7 @@ import java.nio.ByteOrder;
* An instance of a document summary, backed by binary data, which decodes and returns fields on request,
* using the (shared) definition of this docsum.
*
- * @author <a href="mailt:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
*/
public final class Docsum {
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
index 2eec7109722..1524a4da426 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastHit.java
@@ -48,10 +48,7 @@ public class FastHit extends Hit {
*/
private boolean ignoreRowBits = false;
- /**
- * Whether to use the row number in the index uri, see FastSearcher for
- * details
- */
+ /** Whether to use the row number in the index uri, see FastSearcher for details */
private boolean useRowInIndexUri = true;
private transient QueryPacketData queryPacketData = null;
@@ -111,8 +108,8 @@ public class FastHit extends Hit {
}
/**
- * Returns the explicitly set uri if available, returns
- * "index:[source]/[partid]/[id]" otherwise
+ * Returns the explicitly set uri if available, returns "index:[source]/[partid]/[id]" otherwise
+ *
* @return uri of hit
*/
public URI getUri() {
@@ -131,9 +128,9 @@ public class FastHit extends Hit {
}
/**
- * The uri of the index location of this hit
- * ("index:[source]/[partid]/[id]"). This is the uri if no other uri is
- * assigned
+ * The uri of the index location of this hit ("index:[source]/[partid]/[id]").
+ * This is the uri if no other uri is assigned
+ *
* @return uri to the index.
*/
public URI getIndexUri() {
@@ -182,7 +179,7 @@ public class FastHit extends Hit {
}
/**
- * @return Returns the column number where this hit originated, or partId if not known
+ * Returns the column number where this hit originated, or partId if not known
*/
public int getColumn() {
return partId >>> rowBits;
@@ -263,6 +260,7 @@ public class FastHit extends Hit {
/**
* Only needed when fetching summaries in 2 phase.
+ *
* @param distributionKey Of node where you find this hit.
*/
public void setDistributionKey(int distributionKey) {
@@ -315,20 +313,6 @@ public class FastHit extends Hit {
setField(fieldName, new LazyString(new StringField(fieldName), new StringValue(value)));
}
- public static final class RawField {
- private final boolean needXmlEscape;
-
- private final byte[] contents;
-
- public RawField(DocsumField fieldType, byte[] contents) {
- needXmlEscape = ! (fieldType instanceof XMLField);
- this.contents = contents;
- }
-
- public byte [] getUtf8() { return contents; }
- public boolean needXmlEscape() { return needXmlEscape; }
- }
-
/**
* Add the binary data common for the query packet to a Vespa backend and a
* summary fetch packet to a Vespa backend. This method can only be called
@@ -386,6 +370,22 @@ public class FastHit extends Hit {
}
}
+ public static final class RawField {
+
+ private final boolean needXmlEscape;
+
+ private final byte[] contents;
+
+ public RawField(DocsumField fieldType, byte[] contents) {
+ needXmlEscape = ! (fieldType instanceof XMLField);
+ this.contents = contents;
+ }
+
+ public byte [] getUtf8() { return contents; }
+ public boolean needXmlEscape() { return needXmlEscape; }
+
+ }
+
private static abstract class LazyValue {
abstract Object getValue(String fieldName);
abstract RawField getFieldAsUtf8(String fieldName);
@@ -395,6 +395,7 @@ public class FastHit extends Hit {
* Represents a value that resides in the docsum.
*/
private static class LazyDocsumValue extends LazyValue {
+
private final Docsum docsum;
LazyDocsumValue(Docsum docsum) {
@@ -414,9 +415,11 @@ public class FastHit extends Hit {
RawField getFieldAsUtf8(String fieldName) {
return docsum.fetchFieldAsUtf8(getFieldIndex(fieldName));
}
+
}
private static class LazyString extends LazyValue {
+
private final Inspector value;
private final DocsumField fieldType;
@@ -433,6 +436,7 @@ public class FastHit extends Hit {
RawField getFieldAsUtf8(String fieldName) {
return new RawField(fieldType, value.asUtf8());
}
+
}
}
diff --git a/container-search/src/main/java/com/yahoo/search/result/Hit.java b/container-search/src/main/java/com/yahoo/search/result/Hit.java
index 0bfbecfd9ab..3cc7378de5c 100644
--- a/container-search/src/main/java/com/yahoo/search/result/Hit.java
+++ b/container-search/src/main/java/com/yahoo/search/result/Hit.java
@@ -58,7 +58,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
/** The relevance of this hit */
private Relevance relevance;
- /** Says whether this hit is cached or not */
+ /** Says whether this hit is cached */
private boolean cached = false;
/**
@@ -95,59 +95,11 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
private boolean auxiliary=false;
/**
- * The hit field used to store rank features. TODO: Remove
+ * The hit field used to store rank features. TODO: Remove on Vespa 7
*/
public static final String RANKFEATURES_FIELD = "rankfeatures";
public static final String SDDOCNAME_FIELD = "sddocname";
- private Map<String,Object> getFieldMap() {
- return getFieldMap(16);
- }
- private Map<String,Object> getFieldMap(int minSize) {
- if (fields == null) {
- // Compensate for loadfactor and then some, rounded up....
- fields = new LinkedHashMap<>(2*minSize);
- }
- return fields;
- }
-
- private Map<String,Object> getUnmodifiableFieldMap() {
- if (unmodifiableFieldMap == null) {
- if (fields == null) {
- return Collections.emptyMap();
- } else {
- unmodifiableFieldMap = Collections.unmodifiableMap(fields);
- }
- }
- return unmodifiableFieldMap;
- }
-
- public static String stripCharacter(char strip, String toStripFrom) {
- StringBuilder builder = null;
-
- int lastBadChar = 0;
- for (int i = 0; i < toStripFrom.length(); i++) {
- if (toStripFrom.charAt(i) == strip) {
- if (builder == null) {
- builder = new StringBuilder(toStripFrom.length());
- }
-
- builder.append(toStripFrom, lastBadChar, i);
- lastBadChar = i + 1;
- }
- }
-
- if (builder == null) {
- return toStripFrom;
- } else {
- if (lastBadChar < toStripFrom.length()) {
- builder.append(toStripFrom, lastBadChar, toStripFrom.length());
- }
-
- return builder.toString();
- }
- }
-
/** Creates an (invalid) empty hit. Id and relevance must be set before handoff */
protected Hit() {}
@@ -461,8 +413,8 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
/**
* Fields
- * @return An iterator for traversing the fields
- * @since 5.1.3
+ *
+ * @return an iterator for traversing the fields of this hit
*/
public final Iterator<Map.Entry<String,Object>> fieldIterator() { return getFieldMap().entrySet().iterator(); }
@@ -470,21 +422,23 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
public Object getField(String value) { return fields != null ? fields.get(value) : null; }
/**
- * Generate a HitField from a field if the field exists. Does the
- * same as getField() in earlier versions.
- *
- * @since 3.0
+ * Generate a HitField from a field if the field exists.
+ *
+ * @deprecated do not use
*/
+ // TODO: Remove on Vespa 7
+ @Deprecated
public HitField buildHitField(String key) {
return buildHitField(key, false);
}
/**
- * Generate a HitField from a field if the field exists. Does the
- * same as getField() in earlier versions.
+ * Generate a HitField from a field if the field exists.
*
- * @since 3.0
+ * @deprecated do not use
*/
+ // TODO: Remove on Vespa 7
+ @Deprecated
public HitField buildHitField(String key, boolean forceNoPreTokenize) {
return buildHitField(key, forceNoPreTokenize, false);
}
@@ -798,4 +752,52 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi
return filled;
}
+ private Map<String,Object> getFieldMap() {
+ return getFieldMap(16);
+ }
+ private Map<String,Object> getFieldMap(int minSize) {
+ if (fields == null) {
+ // Compensate for loadfactor and then some, rounded up....
+ fields = new LinkedHashMap<>(2*minSize);
+ }
+ return fields;
+ }
+
+ private Map<String,Object> getUnmodifiableFieldMap() {
+ if (unmodifiableFieldMap == null) {
+ if (fields == null) {
+ return Collections.emptyMap();
+ } else {
+ unmodifiableFieldMap = Collections.unmodifiableMap(fields);
+ }
+ }
+ return unmodifiableFieldMap;
+ }
+
+ public static String stripCharacter(char strip, String toStripFrom) {
+ StringBuilder builder = null;
+
+ int lastBadChar = 0;
+ for (int i = 0; i < toStripFrom.length(); i++) {
+ if (toStripFrom.charAt(i) == strip) {
+ if (builder == null) {
+ builder = new StringBuilder(toStripFrom.length());
+ }
+
+ builder.append(toStripFrom, lastBadChar, i);
+ lastBadChar = i + 1;
+ }
+ }
+
+ if (builder == null) {
+ return toStripFrom;
+ } else {
+ if (lastBadChar < toStripFrom.length()) {
+ builder.append(toStripFrom, lastBadChar, toStripFrom.length());
+ }
+
+ return builder.toString();
+ }
+ }
+
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/LoggingIssues.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/LoggingIssues.java
index 160f80076bd..3c9488e04d3 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/LoggingIssues.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/LoggingIssues.java
@@ -17,6 +17,7 @@ import java.util.logging.Logger;
*
* @author bratseth
*/
+@SuppressWarnings("unused") // created by dependency injection
public class LoggingIssues implements Issues {
private static final Logger log = Logger.getLogger(LoggingIssues.class.getName());
@@ -43,10 +44,16 @@ public class LoggingIssues implements Issues {
public String file(Issue issue) {
log.info("Want to file " + issue);
String issueId = "issue-" + issueIdSequence.getAndIncrement();
- issues.put(issueId, issue);
- issueInfos.put(issueId, new IssueInfo(issueId, null, Instant.now(), null, IssueInfo.Status.noCategory));
+ file(issueId, issue);
return issueId;
}
+
+ private IssueInfo file(String issueId, Issue issue) {
+ IssueInfo issueInfo = new IssueInfo(issueId, null, Instant.now(), null, IssueInfo.Status.noCategory);
+ issues.put(issueId, issue);
+ issueInfos.put(issueId, issueInfo);
+ return issueInfo;
+ }
@Override
public void update(String issueId, String description) {
@@ -79,9 +86,10 @@ public class LoggingIssues implements Issues {
private IssueInfo requireInfo(String issueId) {
IssueInfo info = issueInfos.get(issueId);
- if (info == null)
- throw new IllegalArgumentException("No issue info with id '" + issueId + "'");
- return info;
+ if (info != null) // we still remember this issue
+ return info;
+ else // we forgot this issue (due to restart) - recreate it here to avoid log noise
+ return file(issueId, new Issue("(Forgotten)", ""));
}
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/AbstractConcreteDocumentFactory.java b/docproc/src/main/java/com/yahoo/docproc/AbstractConcreteDocumentFactory.java
index 92671d46351..36686caf7ac 100644
--- a/docproc/src/main/java/com/yahoo/docproc/AbstractConcreteDocumentFactory.java
+++ b/docproc/src/main/java/com/yahoo/docproc/AbstractConcreteDocumentFactory.java
@@ -14,11 +14,11 @@ import com.yahoo.yolean.Exceptions;
/**
* Subtyped by factory classes for concrete document types. The factory classes are auto-generated
* by vespa-documentgen-plugin. This superclass is used to manage the factories in OSGI.
- * @author vegardh
- * @since 5.1
*
+ * @author vegardh
*/
public abstract class AbstractConcreteDocumentFactory extends com.yahoo.component.AbstractComponent {
+
public abstract Map<String, Class<? extends Document>> documentTypes();
public abstract Map<String, Class<? extends Struct>> structTypes();
public abstract Map<String, Class<? extends Annotation>> annotationTypes();
@@ -41,4 +41,5 @@ public abstract class AbstractConcreteDocumentFactory extends com.yahoo.componen
throw new RuntimeException(Exceptions.toMessageString(e), e);
}
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/Accesses.java b/docproc/src/main/java/com/yahoo/docproc/Accesses.java
index 9bcc9961058..4c19784ea37 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Accesses.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Accesses.java
@@ -8,13 +8,14 @@ import java.lang.annotation.Target;
/**
* Docprocs tagged with this will read and/or write annotations on the given field(s).
+ *
* @author vegardh
- *
*/
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Accesses {
+
Field[] value();
/**
diff --git a/docproc/src/main/java/com/yahoo/docproc/Call.java b/docproc/src/main/java/com/yahoo/docproc/Call.java
index 24dc8292522..edde89cd01a 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Call.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Call.java
@@ -20,9 +20,10 @@ import java.util.List;
* A document processor to call - an item on a {@link com.yahoo.docproc.CallStack}.
*
* @author bratseth
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class Call implements Cloneable {
+
private final DocumentProcessor processor;
private final Counter docCounter;
private final String docCounterName;
@@ -34,17 +35,19 @@ public class Call implements Cloneable {
this(processor, Statistics.nullImplementation, new NullMetric());
}
- /** Creates a new call to a processor with no arguments.
- * @param processor the document processor to call */
+ /**
+ * Creates a new call to a processor with no arguments.
+ *
+ * @param processor the document processor to call
+ */
public Call(DocumentProcessor processor, Statistics manager, Metric metric) {
this(processor, "", manager, metric);
}
public Call(DocumentProcessor processor, String chainName, Statistics manager, Metric metric) {
this.processor = processor;
- if (chainName == null) {
+ if (chainName == null)
chainName = "";
- }
chainName = chainName.replaceAll("[^\\p{Alnum}]", "_");
docCounterName = "docprocessor_" + chainName + "_" +
getDocumentProcessorId().stringValue().replaceAll("[^\\p{Alnum}]", "_") + "_documents";
@@ -176,4 +179,5 @@ public class Call implements Cloneable {
procTimeCounter.increment(increment);
metric.add(procTimeCounterName, increment, null);
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/CallStack.java b/docproc/src/main/java/com/yahoo/docproc/CallStack.java
index 387c892e108..1e7bf4fba8e 100644
--- a/docproc/src/main/java/com/yahoo/docproc/CallStack.java
+++ b/docproc/src/main/java/com/yahoo/docproc/CallStack.java
@@ -12,15 +12,11 @@ import java.util.List;
import java.util.ListIterator;
/**
- * <p>
- * A stack of the processors to call next in this processing. To push which
+ * <p>A stack of the processors to call next in this processing. To push which
* processor to call next, call addNext, to get and remove the next processor,
- * call pop.
- * </p>
+ * call pop.</p>
*
- * <p>
- * This is not thread safe.
- * </p>
+ * <p>This is not thread safe.</p>
*
* @author bratseth
*/
@@ -376,20 +372,20 @@ public class CallStack {
@Override
public String toString() {
- final StringBuffer buffer = new StringBuffer();
- buffer.append("callstack");
+ StringBuilder b = new StringBuilder();
+ b.append("callstack");
if (name != null) {
- buffer.append(" ");
- buffer.append(name);
+ b.append(" ");
+ b.append(name);
}
- buffer.append(":");
- for (final Iterator<Call> i = iterator(); i.hasNext();) {
- buffer.append("\n");
- buffer.append(" ");
- buffer.append(i.next().toString());
+ b.append(":");
+ for (Iterator<Call> i = iterator(); i.hasNext();) {
+ b.append("\n");
+ b.append(" ");
+ b.append(i.next().toString());
}
- buffer.append("\n");
- return buffer.toString();
+ b.append("\n");
+ return b.toString();
}
public Statistics getStatistics() {
@@ -399,4 +395,5 @@ public class CallStack {
public Metric getMetric() {
return metric;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java b/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
index b215ad36200..a1b640d5eb5 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocprocExecutor.java
@@ -15,7 +15,7 @@ import java.util.logging.Logger;
/**
* An executor executed incoming processings on its CallStack
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class DocprocExecutor {
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocprocService.java b/docproc/src/main/java/com/yahoo/docproc/DocprocService.java
index b04f2c837e2..b7a5e3aa5ef 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocprocService.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocprocService.java
@@ -31,9 +31,8 @@ public class DocprocService extends AbstractComponent {
private static Logger log = Logger.getLogger(DocprocService.class.getName());
private volatile DocprocExecutor executor;
- /**
- * The processings currently in progress at this service
- */
+
+ /** The processings currently in progress at this service */
private final LinkedBlockingQueue<Processing> queue;
/** The current state of this service */
private boolean inService = false;
@@ -138,8 +137,8 @@ public class DocprocService extends AbstractComponent {
/**
* Returns the processing chain of this service. This stack can not be modified.
* To change the stack, set a new one.
- * TODO: Enforce unmodifiability
*/
+ // TODO: Enforce unmodifiability
public CallStack getCallStack() {
DocprocExecutor ex = getExecutor();
return (ex == null) ? null : ex.getCallStack();
@@ -225,13 +224,12 @@ public class DocprocService extends AbstractComponent {
}
private void addProcessing(Processing processing) {
- if (!isAcceptingNewProcessings()) {
- throw new IllegalStateException("Docproc service " + getName() + " is not accepting new incoming processings. Cannot add " + processing + " ");
- }
+ if ( ! isAcceptingNewProcessings())
+ throw new IllegalStateException("Docproc service " + getName() +
+ " is not accepting new incoming processings. Cannot add " + processing + " ");
- if (!queue.offer(processing)) {
+ if ( ! queue.offer(processing))
throw new RejectedExecutionException("Docproc service " + getName() + " is busy, please try later");
- }
}
/**
@@ -370,4 +368,5 @@ public class DocprocService extends AbstractComponent {
private class NoCallStackException extends RuntimeException {
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocumentOperationWrapper.java b/docproc/src/main/java/com/yahoo/docproc/DocumentOperationWrapper.java
index 2f2cd51bf8b..35f3ffd33ea 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocumentOperationWrapper.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocumentOperationWrapper.java
@@ -4,8 +4,10 @@ package com.yahoo.docproc;
import com.yahoo.document.DocumentOperation;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public interface DocumentOperationWrapper {
- public DocumentOperation getWrappedDocumentOperation();
+
+ DocumentOperation getWrappedDocumentOperation();
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java b/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
index 1ef9ee8cc65..d6b456056bd 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
@@ -41,10 +41,8 @@ import java.util.logging.Logger;
* @author bratseth
*/
public abstract class DocumentProcessor extends ChainedComponent {
- static Logger log = Logger.getLogger(DocprocService.class.getName());
- /** The number of instances of this processor */
- private static int instanceCounter = 1;
+ static Logger log = Logger.getLogger(DocprocService.class.getName());
/** Schema map for doctype-fieldnames */
private Map<Pair<String,String>, String> fieldMap = new HashMap<>();
@@ -163,10 +161,7 @@ public abstract class DocumentProcessor extends ChainedComponent {
}
- /** Schema map for field names
- * (doctype,from)→to
- *
- */
+ /** Schema map for field names (doctype,from)→to */
public Map<Pair<String, String>, String> getFieldMap() {
return fieldMap;
}
@@ -187,11 +182,4 @@ public abstract class DocumentProcessor extends ChainedComponent {
return ret;
}
- private void dumpMap(Map<?, String> m) {
- System.out.print("[");
- for (Map.Entry<?, String> e : m.entrySet()) {
- System.out.print("("+e.getKey()+"->"+e.getValue()+")");
- }
- System.out.print("]\n");
- }
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/HandledProcessingException.java b/docproc/src/main/java/com/yahoo/docproc/HandledProcessingException.java
index 0f2065c4be8..51fe89aa358 100644
--- a/docproc/src/main/java/com/yahoo/docproc/HandledProcessingException.java
+++ b/docproc/src/main/java/com/yahoo/docproc/HandledProcessingException.java
@@ -5,11 +5,12 @@ package com.yahoo.docproc;
* Exception generated by known bad input in a docproc. Will cause only message to be logged,
* not stacktrace.
*
- * @author <a href="mailto:mathiasm@yahoo-inc.com">Mathias M\u00F8lster Lidal</a>
+ * @author Mathias Mølster Lidal
*/
public class HandledProcessingException extends RuntimeException {
public HandledProcessingException(String message) {
super(message);
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/Processing.java b/docproc/src/main/java/com/yahoo/docproc/Processing.java
index d6b82e96959..eacbf6ef132 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Processing.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Processing.java
@@ -18,10 +18,8 @@ import java.util.Map;
* @author bratseth
*/
public class Processing {
- /**
- * The name of the service which owns this processing.
- * Null is the same as "default"
- */
+
+ /** The name of the service which owns this processing. Null is the same as "default" */
private String service = null;
/** The processors to call the next work is done on this processing */
@@ -44,7 +42,7 @@ public class Processing {
private ProcessingEndpoint endpoint = null;
/** The registry of docproc services. */
- ComponentRegistry<DocprocService> docprocServiceRegistry = null;
+ private ComponentRegistry<DocprocService> docprocServiceRegistry = null;
private boolean getNumDocsCalled = false;
/**
diff --git a/docproc/src/main/java/com/yahoo/docproc/ProcessingEndpoint.java b/docproc/src/main/java/com/yahoo/docproc/ProcessingEndpoint.java
index c93d0c7f0f3..27075b48be7 100644
--- a/docproc/src/main/java/com/yahoo/docproc/ProcessingEndpoint.java
+++ b/docproc/src/main/java/com/yahoo/docproc/ProcessingEndpoint.java
@@ -2,12 +2,12 @@
package com.yahoo.docproc;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public interface ProcessingEndpoint {
- public void processingDone(Processing processing);
+ void processingDone(Processing processing);
- public void processingFailed(Processing processing, Exception exception);
+ void processingFailed(Processing processing, Exception exception);
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/SimpleDocumentProcessor.java b/docproc/src/main/java/com/yahoo/docproc/SimpleDocumentProcessor.java
index 5865e190110..bcd1ee521bc 100644
--- a/docproc/src/main/java/com/yahoo/docproc/SimpleDocumentProcessor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/SimpleDocumentProcessor.java
@@ -22,10 +22,11 @@ import com.yahoo.log.LogLevel;
* <p>SimpleDocumentProcessor is for the <em>simple</em> cases. For complete control over document processing,
* like returning instances of {@link DocumentProcessor.LaterProgress}, subclass {@link DocumentProcessor} instead.</p>
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
- * @author <a href="mailto:havardpe@yahoo-inc.com">Haavard Pettersen</a>
+ * @author Einar M R Rosenvinge
+ * @author havardpe
*/
public class SimpleDocumentProcessor extends DocumentProcessor {
+
/**
* Override this to process the Document inside a DocumentPut.
* @deprecated use process(DocumentPut)
@@ -33,6 +34,7 @@ public class SimpleDocumentProcessor extends DocumentProcessor {
* @param document the Document to process.
*/
@Deprecated
+ // TODO: Remove on Vespa 7
public void process(Document document) {
if (log.isLoggable(LogLevel.DEBUG)) {
log.log(LogLevel.DEBUG, "Ignored " + document);
@@ -46,6 +48,7 @@ public class SimpleDocumentProcessor extends DocumentProcessor {
*
* @param put the DocumentPut to process.
*/
+ @SuppressWarnings("deprecation")
public void process(DocumentPut put) {
process(put.getDocument());
}
@@ -118,4 +121,5 @@ public class SimpleDocumentProcessor extends DocumentProcessor {
return Progress.DONE;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/TransientFailureException.java b/docproc/src/main/java/com/yahoo/docproc/TransientFailureException.java
index 1b633ffd2f1..cda196f309c 100644
--- a/docproc/src/main/java/com/yahoo/docproc/TransientFailureException.java
+++ b/docproc/src/main/java/com/yahoo/docproc/TransientFailureException.java
@@ -5,10 +5,12 @@ package com.yahoo.docproc;
* Exception to be thrown by a document processor on transient failures.&nbsp;Caller
* is welcome to try the call again later.
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class TransientFailureException extends RuntimeException {
+
public TransientFailureException(String s) {
super(s);
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadManager.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadManager.java
index d95ae14ff2e..4fb3c8f0913 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadManager.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadManager.java
@@ -11,9 +11,10 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Logger;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
class DocprocThreadManager {
+
private static Logger log = Logger.getLogger(DocprocThreadManager.class.getName());
private final long maxConcurrentByteSize;
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java
index 8e4fb1d471f..1d3e85057ec 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java
@@ -11,7 +11,7 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class DocprocThreadPoolExecutor extends ThreadPoolExecutor {
@@ -55,4 +55,5 @@ public class DocprocThreadPoolExecutor extends ThreadPoolExecutor {
boolean isAboveLimit() {
return threadManager.isAboveLimit();
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
index 7b3a3aa5dfa..1b84d0f9ffa 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
@@ -40,7 +40,7 @@ import static com.yahoo.component.chain.model.ChainsModelBuilder.buildFromConfig
/**
* TODO: Javadoc
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class DocumentProcessingHandler extends AbstractRequestHandler {
@@ -232,4 +232,5 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
public DocumentTypeManager getDocumentTypeManager() {
return documentTypeManager;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
index 6950697718d..cec943306c8 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandlerParameters.java
@@ -12,10 +12,11 @@ import com.yahoo.statistics.Statistics;
/**
* Class to hold parameters given to DocumentProcessingHandler, typically used by unit tests.
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
* @see com.yahoo.docproc.jdisc.DocumentProcessingHandler
*/
public class DocumentProcessingHandlerParameters {
+
private int maxNumThreads = 0;
private double maxConcurrentFactor = 0.2;
private double documentExpansionFactor = 20.0;
@@ -166,4 +167,5 @@ public class DocumentProcessingHandlerParameters {
public ContainerDocumentConfig getContainerDocConfig() {
return containerDocConfig;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
index 4849086985e..0bc95fe6c7b 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
@@ -24,9 +24,10 @@ import java.util.logging.Level;
import java.util.logging.Logger;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class DocumentProcessingTask implements Comparable<DocumentProcessingTask>, Runnable {
+
private static Logger log = Logger.getLogger(DocumentProcessingTask.class.getName());
private final List<Processing> processings = new ArrayList<>();
private final List<Processing> processingsDone = new ArrayList<>();
@@ -232,4 +233,5 @@ public class DocumentProcessingTask implements Comparable<DocumentProcessingTask
log.log(LogLevel.DEBUG, "Failed to process " + processing + ": " + backtrace.toString());
}
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
index 3a15446a732..2c2c8e853a3 100644
--- a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
+++ b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
@@ -36,7 +36,7 @@ import java.util.Set;
* into account a schema map of field names. <li>We support mapping into struct fields of arbitrary depth using
* from→mystruct.mystruct.myfield </ul> We also enforce the @Accesses annotation(s) of the doc proc which uses this.
*
- * @author <a href="mailto:vegardh@yahoo-inc.com">Vegard Havdal</a>
+ * @author Vegard Havdal
*/
public class ProxyDocument extends Document implements DocumentOperationWrapper {
diff --git a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
index 154c52204da..a0516a62bd9 100644
--- a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
+++ b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
@@ -15,15 +15,16 @@ import java.util.Map;
/**
* Schema mapped facade to a DocumentUpdate
+ *
* @author vegardh
- *
*/
public class ProxyDocumentUpdate extends DocumentUpdate implements DocumentOperationWrapper {
private DocumentUpdate docU;
+
/**
- * The field name map for schema mapping. The key is the field name that the docproc uses. The value is the actual name of the field
- * in the document.
+ * The field name map for schema mapping. The key is the field name that the docproc uses.
+ * The value is the actual name of the field in the document.
*/
private Map<String, String> fieldMap;
@@ -116,4 +117,5 @@ public class ProxyDocumentUpdate extends DocumentUpdate implements DocumentOpera
}
return innermostDocOp;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/proxy/SchemaMap.java b/docproc/src/main/java/com/yahoo/docproc/proxy/SchemaMap.java
index 98d9dc3320c..fb7e34021d2 100644
--- a/docproc/src/main/java/com/yahoo/docproc/proxy/SchemaMap.java
+++ b/docproc/src/main/java/com/yahoo/docproc/proxy/SchemaMap.java
@@ -14,15 +14,12 @@ import java.util.logging.Logger;
/**
* Can be used to map field names from input doc into names used in a docproc that was
* written with generic field names.
+ *
* @author vegardh
- *
*/
public class SchemaMap implements ConfigSubscriber.SingleSubscriber<SchemamappingConfig> {
- /**
- * Map key. Doctype can be null, not the others.
- * @author vegardh
- *
- */
+
+ /** Map key. Doctype can be null, not the others. */
class SchemaMapKey {
private final String chain;
@@ -127,5 +124,4 @@ public class SchemaMap implements ConfigSubscriber.SingleSubscriber<Schemamappin
return ret;
}
-
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/util/JoinerDocumentProcessor.java b/docproc/src/main/java/com/yahoo/docproc/util/JoinerDocumentProcessor.java
index f0baac27631..6242be25f86 100644
--- a/docproc/src/main/java/com/yahoo/docproc/util/JoinerDocumentProcessor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/util/JoinerDocumentProcessor.java
@@ -20,7 +20,7 @@ import static com.yahoo.docproc.util.SplitterDocumentProcessor.validate;
import static com.yahoo.docproc.util.SplitterDocumentProcessor.doProcessOuterDocument;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class JoinerDocumentProcessor extends DocumentProcessor {
@@ -28,7 +28,7 @@ public class JoinerDocumentProcessor extends DocumentProcessor {
private String documentTypeName;
private String arrayFieldName;
private String contextFieldName;
- DocumentTypeManager manager;
+ private DocumentTypeManager manager;
public JoinerDocumentProcessor(SplitterJoinerDocumentProcessorConfig cfg, DocumentmanagerConfig documentmanagerConfig) {
super();
@@ -68,4 +68,5 @@ public class JoinerDocumentProcessor extends DocumentProcessor {
processing.removeVariable(contextFieldName);
return Progress.DONE;
}
+
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/util/SplitterDocumentProcessor.java b/docproc/src/main/java/com/yahoo/docproc/util/SplitterDocumentProcessor.java
index 5fb99fa0e15..18e4294480b 100644
--- a/docproc/src/main/java/com/yahoo/docproc/util/SplitterDocumentProcessor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/util/SplitterDocumentProcessor.java
@@ -19,7 +19,7 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class SplitterDocumentProcessor extends DocumentProcessor {
diff --git a/vespajlib/src/main/java/com/yahoo/collections/ArraySet.java b/vespajlib/src/main/java/com/yahoo/collections/ArraySet.java
index 18e52090033..dee8417f15b 100644
--- a/vespajlib/src/main/java/com/yahoo/collections/ArraySet.java
+++ b/vespajlib/src/main/java/com/yahoo/collections/ArraySet.java
@@ -18,15 +18,16 @@ import java.util.Set;
* in IdentityHashMap, where the key set is often used as an identity set.
* </p>
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
* @author baldersheim
- * @since 5.1.4
*
* @param <E>
* the type contained in the Set
*/
public final class ArraySet<E> implements Set<E> {
+
private class ArrayIterator<T> implements Iterator<E> {
+
private int i = -1;
private boolean removed = false;