diff --git a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java index 4a03b449..bc8861d3 100644 --- a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java +++ b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java @@ -104,6 +104,7 @@ public class Worker implements Runnable { private volatile boolean shutdown; private volatile long shutdownStartTimeMillis; private volatile boolean shutdownComplete = false; + private volatile Exception lastException = null; // Holds consumers for shards the worker is currently tracking. Key is shard // info, value is ShardConsumer. @@ -617,7 +618,6 @@ public class Worker implements Runnable { private void initialize() { workerStateChangeListener.onWorkerStateChange(WorkerStateChangeListener.WorkerState.INITIALIZING); boolean isDone = false; - Exception lastException = null; for (int i = 0; (!isDone) && (i < MAX_INITIALIZATION_ATTEMPTS); i++) { try { @@ -881,6 +881,14 @@ public class Worker implements Runnable { WorkerStateChangeListener getWorkerStateChangeListener() { return workerStateChangeListener; } + + /** + * The last of any exception encountered during initialize() will be available here + */ + public Exception getLastException() + { + return lastException; + } /** * Signals worker to shutdown. Worker will try initiating shutdown of all record processors. Note that if executor