diff options
author | 2018-04-06 12:03:07 -0700 | |
---|---|---|
committer | 2018-04-06 12:04:24 -0700 | |
commit | e4c64ac6fe63d78da3a8cafe1df72c81df23fcb0 (patch) | |
tree | f56703659b80cdc44b64712eaf2705a403d4ccdd /src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java | |
parent | 4282c19c58a1b20deca1ce373005602ff0bc4684 (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.java | 7 |
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; + } } } |