[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)