[GEARPUMP-278] Check for null before casting stored start clock
Author: manuzhang <owenzhang1990@gmail.com>
Closes #154 from manuzhang/app_data_store.
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 2a24b66..b1f0b23 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 @@
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)