Better error message for RehydratedComponents.getCoder

Project: http://git-wip-us.apache.org/repos/asf/beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/3d99d07a
Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/3d99d07a
Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/3d99d07a

Branch: refs/heads/master
Commit: 3d99d07a2b580fca99545c622f53b7378d1bb61a
Parents: 187beae
Author: Kenneth Knowles <k...@google.com>
Authored: Tue Oct 3 15:51:03 2017 -0700
Committer: Kenneth Knowles <k...@apache.org>
Committed: Tue Oct 17 12:45:11 2017 -0700

----------------------------------------------------------------------
 .../runners/core/construction/RehydratedComponents.java   | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/3d99d07a/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/RehydratedComponents.java
----------------------------------------------------------------------
diff --git 
a/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/RehydratedComponents.java
 
b/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/RehydratedComponents.java
index 2e12603..fdb6cea 100644
--- 
a/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/RehydratedComponents.java
+++ 
b/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/RehydratedComponents.java
@@ -71,8 +71,14 @@ public class RehydratedComponents {
               new CacheLoader<String, Coder<?>>() {
                 @Override
                 public Coder<?> load(String id) throws Exception {
-                  return CoderTranslation.fromProto(
-                      components.getCodersOrThrow(id), 
RehydratedComponents.this);
+                  RunnerApi.Coder coder;
+                  try {
+                    coder = components.getCodersOrThrow(id);
+                  } catch (IllegalArgumentException exc) {
+                    throw new IllegalStateException(
+                        String.format("No coder with id '%s' in serialized 
components", id), exc);
+                  }
+                  return CoderTranslation.fromProto(coder, 
RehydratedComponents.this);
                 }
               });
 

Reply via email to