aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java
diff options
context:
space:
mode:
authorGravatar shahan <shahan@google.com>2018-04-06 12:03:07 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-06 12:04:24 -0700
commite4c64ac6fe63d78da3a8cafe1df72c81df23fcb0 (patch)
treef56703659b80cdc44b64712eaf2705a403d4ccdd /src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java
parent4282c19c58a1b20deca1ce373005602ff0bc4684 (diff)
DynamicCodec emits a trail of type names when it encounters NoSuchCodecException.
This will make it easier to trace down missing codecs. PiperOrigin-RevId: 191920743
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java
index 19a493b75b..d8218da3ef 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java
@@ -123,7 +123,12 @@ public class DynamicCodec implements ObjectCodec<Object> {
serializeField(context, codedOut, arr, type.getComponentType(), base + scale * i);
}
} else {
- context.serialize(UnsafeProvider.getInstance().getObject(obj, offset), codedOut);
+ try {
+ context.serialize(UnsafeProvider.getInstance().getObject(obj, offset), codedOut);
+ } catch (SerializationException.NoCodecException e) {
+ e.addTrail(this.type);
+ throw e;
+ }
}
}