summaryrefslogtreecommitdiffstats
path: root/indexinglanguage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-09-26 13:57:35 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-09-26 13:57:35 +0200
commitf9356059361de5b4e6ced481988f3248af3b1d52 (patch)
tree9a762f2da84152d05f7d4176b2829b443b632403 /indexinglanguage
parentf2c3e8dbc888239c88ee8d1ef8fb280f8c3012de (diff)
Add more information to a NullPointerException.
Diffstat (limited to 'indexinglanguage')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java32
1 files changed, 20 insertions, 12 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java
index 252f6c5bd12..43ccd6d48a8 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java
@@ -48,23 +48,31 @@ public class SimpleAdapterFactory implements AdapterFactory {
DocumentId docId = upd.getId();
Document complete = new Document(docType, upd.getId());
for (FieldPathUpdate fieldUpd : upd) {
- if (FieldPathUpdateHelper.isComplete(fieldUpd)) {
- // A 'complete' field path update is basically a regular top-level field update
- // in wolf's clothing. Convert it to a regular field update to be friendlier
- // towards the search core backend.
- FieldPathUpdateHelper.applyUpdate(fieldUpd, complete);
- } else {
- ret.add(new IdentityFieldPathUpdateAdapter(fieldUpd, newDocumentAdapter(complete, true)));
+ try {
+ if (FieldPathUpdateHelper.isComplete(fieldUpd)) {
+ // A 'complete' field path update is basically a regular top-level field update
+ // in wolf's clothing. Convert it to a regular field update to be friendlier
+ // towards the search core backend.
+ FieldPathUpdateHelper.applyUpdate(fieldUpd, complete);
+ } else {
+ ret.add(new IdentityFieldPathUpdateAdapter(fieldUpd, newDocumentAdapter(complete, true)));
+ }
+ } catch (NullPointerException e) {
+ throw new IllegalArgumentException("Exception during handling of update '" + fieldUpd + "' to field '" + fieldUpd.getFieldPath() + "'", e);
}
}
for (FieldUpdate fieldUpd : upd.getFieldUpdates()) {
Field field = fieldUpd.getField();
for (ValueUpdate valueUpd : fieldUpd.getValueUpdates()) {
- if (FieldUpdateHelper.isComplete(field, valueUpd)) {
- FieldUpdateHelper.applyUpdate(field, valueUpd, complete);
- } else {
- Document partial = FieldUpdateHelper.newPartialDocument(docType, docId, field, valueUpd);
- ret.add(FieldUpdateAdapter.fromPartialUpdate(expressionSelector.selectExpression(docType, field.getName()),newDocumentAdapter(partial, true), valueUpd));
+ try {
+ if (FieldUpdateHelper.isComplete(field, valueUpd)) {
+ FieldUpdateHelper.applyUpdate(field, valueUpd, complete);
+ } else {
+ Document partial = FieldUpdateHelper.newPartialDocument(docType, docId, field, valueUpd);
+ ret.add(FieldUpdateAdapter.fromPartialUpdate(expressionSelector.selectExpression(docType, field.getName()), newDocumentAdapter(partial, true), valueUpd));
+ }
+ } catch (NullPointerException e) {
+ throw new IllegalArgumentException("Exception during handling of update '" + valueUpd + "' to field '" + field + "'", e);
}
}
}