diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-09-26 13:57:35 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-09-26 13:57:35 +0200 |
commit | f9356059361de5b4e6ced481988f3248af3b1d52 (patch) | |
tree | 9a762f2da84152d05f7d4176b2829b443b632403 /indexinglanguage | |
parent | f2c3e8dbc888239c88ee8d1ef8fb280f8c3012de (diff) |
Add more information to a NullPointerException.
Diffstat (limited to 'indexinglanguage')
-rw-r--r-- | indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleAdapterFactory.java | 32 |
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); } } } |