summaryrefslogtreecommitdiffstats
path: root/vespa-hadoop/src/test
diff options
context:
space:
mode:
authorRong-En Fan <rafan@verizonmedia.com>2020-04-01 17:30:03 +0800
committerRong-En Fan <rafan@verizonmedia.com>2020-04-01 17:32:28 +0800
commitf4c622836569b015fff25fc2adb2826134d60a1d (patch)
tree9dce8e0df30a6ff490f98e128212b93acd3f6de5 /vespa-hadoop/src/test
parentede7a4ac09e169813087b05d8b98818332b6578c (diff)
Improve error handling
- Fix NoClassDefFoundError on shaded/vespa/commons/lang/exception/ExceptionUtils The ExceptionUtils from vespajlib would be a good replacement if it was client library (JDK 8 compatible). To minimize dependency, simply grab the implementation. - Emit UDF error logs to stderr so it can be examined - Use different PigWarning to make triage easier
Diffstat (limited to 'vespa-hadoop/src/test')
-rw-r--r--vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/pig/VespaDocumentOperationTest.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/pig/VespaDocumentOperationTest.java b/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/pig/VespaDocumentOperationTest.java
index 3c6805019b8..c1ff925697d 100644
--- a/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/pig/VespaDocumentOperationTest.java
+++ b/vespa-hadoop/src/test/java/com/yahoo/vespa/hadoop/pig/VespaDocumentOperationTest.java
@@ -85,6 +85,27 @@ public class VespaDocumentOperationTest {
@Test
+ public void requireThatUDFReturnsNullWhenExceptionHappens() throws IOException {
+ Schema schema = new Schema();
+ Tuple tuple = TupleFactory.getInstance().newTuple();
+
+ // broken DELTA format that would throw internally
+ Map<String, Double> tensor = new HashMap<String, Double>() {{
+ put("xlabel1", 2.0); // missing : between 'x' and 'label1'
+ }};
+
+ addToTuple("id", DataType.CHARARRAY, "123", schema, tuple);
+ addToTuple("tensor", DataType.MAP, tensor, schema, tuple);
+
+ VespaDocumentOperation docOp = new VespaDocumentOperation("docid=empty", "create-tensor-fields=tensor");
+ docOp.setInputSchema(schema);
+ String json = docOp.exec(tuple);
+
+ assertNull(json);
+ }
+
+
+ @Test
public void requireThatUDFCorrectlyGeneratesRemoveOperation() throws Exception {
String json = getDocumentOperationJson("operation=remove", "docid=id:<application>:metrics::<name>-<date>");
ObjectMapper m = new ObjectMapper();