From ee6e11933c89d7aa76db7f3881029a08e9d609e7 Mon Sep 17 00:00:00 2001 From: manuzhang Date: Tue, 21 Feb 2017 10:11:37 +0800 Subject: [PATCH] [GEARPUMP-278] Check for null before casting stored start clock --- .../apache/gearpump/streaming/appmaster/ClockService.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/streaming/src/main/scala/org/apache/gearpump/streaming/appmaster/ClockService.scala b/streaming/src/main/scala/org/apache/gearpump/streaming/appmaster/ClockService.scala index 2a24b6650..b1f0b2338 100644 --- a/streaming/src/main/scala/org/apache/gearpump/streaming/appmaster/ClockService.scala +++ b/streaming/src/main/scala/org/apache/gearpump/streaming/appmaster/ClockService.scala @@ -60,8 +60,10 @@ class ClockService( override def preStart(): Unit = { LOG.info("Initializing Clock service, get snapshotted StartClock ....") - store.get(START_CLOCK).asInstanceOf[Future[TimeStamp]].map { clock => - val startClock = Option(clock).getOrElse(0L) + store.get(START_CLOCK).map { clock => + // check for null first since + // (null).asInstanceOf[TimeStamp] is zero + val startClock = if (clock != null) clock.asInstanceOf[TimeStamp] else MIN_TIME_MILLIS minCheckpointClock = Some(startClock)