Bug 515959 - Rebuilding corrupts index when disabled 

Change-Id: I0cab6f04ac36726edb0fe119964efbd2ab703822
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
index 818172f..cbccd07 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/db/Database.java
@@ -403,6 +403,7 @@
 			wasCanceled = flush() || wasCanceled;
 		}
 		this.memoryUsage.refresh();
+		this.fHeaderChunk.makeDirty();
 		return wasCanceled;
 	}
 
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
index 5922a94..df12fb7 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java
@@ -1057,6 +1057,7 @@
 		this.nd.acquireWriteLock(subMonitor.split(1));
 		try {
 			this.nd.clear(subMonitor.split(2));
+			this.nd.getDB().flush();
 		} finally {
 			this.nd.releaseWriteLock();
 		}