add test case for duplicate snapshots during bootstrap
diff --git a/apigee_sync.go b/apigee_sync.go
index 2ed1546..d2b36b7 100644
--- a/apigee_sync.go
+++ b/apigee_sync.go
@@ -291,6 +291,11 @@
 
 	scopes := []string{apidInfo.ClusterID}
 	snapshot := downloadSnapshot(scopes)
+	storeBootSnapshot(snapshot)
+}
+
+func storeBootSnapshot(snapshot common.Snapshot) {
+	log.Debug("storeBootSnapshot", snapshot.SnapshotInfo)
 	// note that for boot snapshot case, we don't touch databases. We only update in-mem cache
 	// This aims to deal with duplicate snapshot version#, see XAPID-869 for details
 	scopeCache.clearAndInitCache(snapshot.SnapshotInfo)
@@ -316,11 +321,15 @@
 	scopes := scopeCache.readAllScope()
 
 	scopes = append(scopes, apidInfo.ClusterID)
-	resp := downloadSnapshot(scopes)
+	snapshot := downloadSnapshot(scopes)
+	storeDataSnapshot(snapshot)
+}
 
-	knownTables = extractTablesFromSnapshot(resp)
+func storeDataSnapshot(snapshot common.Snapshot) {
+	log.Debug("storeDataSnapshot", snapshot.SnapshotInfo)
+	knownTables = extractTablesFromSnapshot(snapshot)
 
-	db, err := data.DBVersion(resp.SnapshotInfo)
+	db, err := data.DBVersion(snapshot.SnapshotInfo)
 	if err != nil {
 		log.Panicf("Database inaccessible: %v", err)
 	}
@@ -328,7 +337,7 @@
 
 	done := make(chan bool)
 	log.Info("Emitting Snapshot to plugins")
-	events.EmitWithCallback(ApigeeSyncEventSelector, &resp, func(event apid.Event) {
+	events.EmitWithCallback(ApigeeSyncEventSelector, &snapshot, func(event apid.Event) {
 		done <- true
 	})
 
@@ -337,8 +346,11 @@
 		log.Panic("Timeout. Plugins failed to respond to snapshot.")
 	case <-done:
 	}
+
 }
 
+
+
 func extractTablesFromSnapshot(snapshot common.Snapshot) (tables map[string]bool) {
 
 	tables = make(map[string]bool)
diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index f5142d2..07ffe18 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -80,5 +80,14 @@
 		Expect(getChangeStatus("2.2.1", "1.2.2")).To(Equal(-1))
 		Expect(getChangeStatus("2.2.1", "2.2.0")).To(Equal(-1))
 	})
+	/*
+	 * XAPID-869
+	 */
+	It("Should be able to handle duplicate snapshot during bootstrap", func() {
+		scopes := []string{apidInfo.ClusterID}
+		snapshot := downloadSnapshot(scopes)
+		storeBootSnapshot(snapshot)
+		storeDataSnapshot(snapshot)
+	})
 
 })