summaryrefslogtreecommitdiffstats
path: root/docproc
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2016-11-30 14:51:11 +0100
committerfreva <valerijf@yahoo-inc.com>2016-11-30 14:51:11 +0100
commit65ccf1102c7e30d386939cd12abe16f60cd4a598 (patch)
treeb61d1c8d39855da621f0514b02cbb9560c614be2 /docproc
parentd6d924d03e8bfa51949eb30d2cd8082036d30bd0 (diff)
Make it possible to return failure reason in docproc
Diffstat (limited to 'docproc')
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java18
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java4
2 files changed, 18 insertions, 4 deletions
diff --git a/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java b/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
index cb272a1d151..dffa4b66213 100644
--- a/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
+++ b/docproc/src/main/java/com/yahoo/docproc/DocumentProcessor.java
@@ -2,13 +2,12 @@
package com.yahoo.docproc;
import com.yahoo.collections.Pair;
-import com.yahoo.component.ComponentId;
-import com.yahoo.component.Version;
import com.yahoo.component.chain.ChainedComponent;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
import java.util.logging.Logger;
/**
@@ -104,18 +103,33 @@ public abstract class DocumentProcessor extends ChainedComponent {
private String name;
+ private Optional<String> reason = Optional.empty();
+
protected Progress(String name) {
this.name = name;
}
+ protected Progress(String name, String reason) {
+ this(name);
+ this.reason = Optional.of(reason);
+ }
+
public static Progress later(long delay) {
return new LaterProgress(delay);
}
+ public Progress withReason(String reason) {
+ return new Progress(this.name, reason);
+ }
+
public String toString() {
return name;
}
+ public Optional<String> getReason() {
+ return reason;
+ }
+
public boolean equals(Object object) {
return object instanceof Progress && ((Progress) object).name.equals(this.name);
}
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 7e92e8eb5a1..c35c56bba7b 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
@@ -141,12 +141,12 @@ public class DocumentProcessingTask implements Comparable<DocumentProcessingTask
} else if (DocumentProcessor.Progress.FAILED.equals(progress)) {
logProcessingFailure(processing, null);
requestContext.processingFailed(RequestContext.ErrorCode.ERROR_PROCESSING_FAILURE,
- "Document processing failed.");
+ progress.getReason().orElse("Document processing failed."));
return progress;
} else if (DocumentProcessor.Progress.PERMANENT_FAILURE.equals(progress)) {
logProcessingFailure(processing, null);
requestContext.processingFailed(RequestContext.ErrorCode.ERROR_PROCESSING_FAILURE,
- "Document processing failed.");
+ progress.getReason().orElse("Document processing failed."));
return progress;
}
}