From e1c407973f5c4a7af6b80c1a9be92ab1635de665 Mon Sep 17 00:00:00 2001 From: Ewen Cheslack-Postava Date: Mon, 8 Jan 2018 11:14:54 -0800 Subject: [PATCH] MINOR: Improve exception messages when state stores cannot be accessed. (#4383) --- .../state/internals/StreamThreadStateStoreProvider.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/streams/src/main/java/org/apache/kafka/streams/state/internals/StreamThreadStateStoreProvider.java b/streams/src/main/java/org/apache/kafka/streams/state/internals/StreamThreadStateStoreProvider.java index cb5a8f8ede9..415c6a2ec0a 100644 --- a/streams/src/main/java/org/apache/kafka/streams/state/internals/StreamThreadStateStoreProvider.java +++ b/streams/src/main/java/org/apache/kafka/streams/state/internals/StreamThreadStateStoreProvider.java @@ -45,14 +45,16 @@ public class StreamThreadStateStoreProvider implements StateStoreProvider { return Collections.emptyList(); } if (!streamThread.isRunningAndNotRebalancing()) { - throw new InvalidStateStoreException("the state store, " + storeName + ", may have migrated to another instance."); + throw new InvalidStateStoreException("Cannot get state store " + storeName + " because the stream thread is " + + streamThread.state() + ", not RUNNING"); } final List stores = new ArrayList<>(); for (Task streamTask : streamThread.tasks().values()) { final StateStore store = streamTask.getStore(storeName); if (store != null && queryableStoreType.accepts(store)) { if (!store.isOpen()) { - throw new InvalidStateStoreException("the state store, " + storeName + ", may have migrated to another instance."); + throw new InvalidStateStoreException("Cannot get state store " + storeName + " for task " + streamTask + + " because the store is not open. The state store may have migrated to another instances."); } stores.add((T) store); }