Better refresh during access

Change-Id: Ic77b16119a1044c579151441d9ef2fcb06d414dd
Signed-off-by: Dawid Pakuła <zulus@w3des.net>
diff --git a/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/IndexContainer.java b/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/IndexContainer.java
index 65f1829..3f6f675 100644
--- a/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/IndexContainer.java
+++ b/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/IndexContainer.java
@@ -230,12 +230,12 @@
 						fIndexSearchers.get(dataType).put(elementType,
 								searcher);
 					} else {
-						searcher.maybeRefresh();
+						searcher.maybeRefreshBlocking();
 					}
 
 				}
 			} else {
-				searcher.maybeRefresh();
+				searcher.maybeRefreshBlocking();
 			}
 
 		} catch (IndexNotFoundException e) {
diff --git a/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/LuceneManager.java b/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/LuceneManager.java
index e73a96e..5fd2d88 100644
--- a/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/LuceneManager.java
+++ b/core/plugins/org.eclipse.dltk.core.index.lucene/src/org/eclipse/dltk/internal/core/index/lucene/LuceneManager.java
@@ -109,7 +109,8 @@
 							indexContainer.commit();
 						}));
 					}
-					ForkJoinTask.invokeAll(tasks);
+					ForkJoinTask.invokeAll(tasks).stream()
+							.forEach(t -> t.join());
 				}
 			} catch (Exception e) {
 				Logger.logException(e);