Bug 355110 - NPE in RemoteIndexerTask.run() when using the local indexing provider
diff --git a/rdt/org.eclipse.ptp.rdt.core/.settings/.api_filters b/rdt/org.eclipse.ptp.rdt.core/.settings/.api_filters
index 9f52ca2..52d7fe1 100644
--- a/rdt/org.eclipse.ptp.rdt.core/.settings/.api_filters
+++ b/rdt/org.eclipse.ptp.rdt.core/.settings/.api_filters
@@ -1,5 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component id="org.eclipse.ptp.rdt.core" version="2">
+<?xml version="1.0" encoding="UTF-8"?><component id="org.eclipse.ptp.rdt.core" version="2">
+ <resource path="src/org/eclipse/ptp/internal/rdt/core/index/RemoteIndexerTask.java" type="org.eclipse.ptp.internal.rdt.core.index.RemoteIndexerTask">
+ <filter id="574619656">
+ <message_arguments>
+ <message_argument value="IPDOMIndexerTask"/>
+ <message_argument value="RemoteIndexerTask"/>
+ </message_arguments>
+ </filter>
+ </resource>
<resource path="src/org/eclipse/ptp/internal/rdt/core/model/Macro.java" type="org.eclipse.ptp.internal.rdt.core.model.Macro">
<filter id="574619656">
<message_arguments>
@@ -8,4 +15,4 @@
</message_arguments>
</filter>
</resource>
-</component>
+</component>
\ No newline at end of file
diff --git a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/index/RemoteIndexerTask.java b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/index/RemoteIndexerTask.java
index 7bda229..3c38939 100755
--- a/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/index/RemoteIndexerTask.java
+++ b/rdt/org.eclipse.ptp.rdt.core/src/org/eclipse/ptp/internal/rdt/core/index/RemoteIndexerTask.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2010 IBM Corporation and others.
+ * Copyright (c) 2008, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -72,30 +72,38 @@
public void run(IProgressMonitor monitor) throws InterruptedException {
IIndexLifecycleService service = fIndexServiceProvider.getIndexLifeCycleService();
- IProject project = fIndexer.getProject().getProject();
- Scope scope = new Scope(project);
-
- IndexBuildSequenceController projectStatus = IndexBuildSequenceController.getIndexBuildSequenceController(fIndexer.getProject().getProject());
-
- if (fUpdate) {
- // notify listeners
- for (IRemoteFastIndexerListener listener : RemoteFastIndexer.getRemoteFastIndexerListeners()) {
- listener.indexerUpdating(new RemoteFastIndexerUpdateEvent(IRemoteFastIndexerUpdateEvent.EventType.EVENT_UPDATE, this, scope));
+ if (service != null) {
+ IProject project = fIndexer.getProject().getProject();
+
+ Scope scope = new Scope(project);
+
+ IndexBuildSequenceController projectStatus = IndexBuildSequenceController
+ .getIndexBuildSequenceController(fIndexer.getProject().getProject());
+
+ if (fUpdate) {
+ // notify listeners
+ for (IRemoteFastIndexerListener listener : RemoteFastIndexer.getRemoteFastIndexerListeners()) {
+ listener.indexerUpdating(new RemoteFastIndexerUpdateEvent(
+ IRemoteFastIndexerUpdateEvent.EventType.EVENT_UPDATE, this, scope));
+ }
+
+ // perform the indexer update
+ service.update(scope, Arrays.<ICElement> asList(fAdded), Arrays.<ICElement> asList(fChanged),
+ Arrays.<ICElement> asList(fRemoved), monitor, this);
+ } else {
+ // notify listeners
+ for (IRemoteFastIndexerListener listener : RemoteFastIndexer.getRemoteFastIndexerListeners()) {
+ listener.indexerUpdating(new RemoteFastIndexerUpdateEvent(
+ IRemoteFastIndexerUpdateEvent.EventType.EVENT_REINDEX, this, scope));
+ }
+
+ // perform the re-index
+ service.reindex(scope, fIndexServiceProvider.getIndexLocation(), Arrays.<ICElement> asList(fAdded),
+ monitor, this);
}
-
- // perform the indexer update
- service.update(scope, Arrays.<ICElement>asList(fAdded), Arrays.<ICElement>asList(fChanged), Arrays.<ICElement>asList(fRemoved), monitor, this);
- } else {
- // notify listeners
- for (IRemoteFastIndexerListener listener : RemoteFastIndexer.getRemoteFastIndexerListeners()) {
- listener.indexerUpdating(new RemoteFastIndexerUpdateEvent(IRemoteFastIndexerUpdateEvent.EventType.EVENT_REINDEX, this, scope));
- }
-
- // perform the re-index
- service.reindex(scope, fIndexServiceProvider.getIndexLocation(), Arrays.<ICElement>asList(fAdded), monitor, this);
+ projectStatus.setIndexCompleted();
}
- projectStatus.setIndexCompleted();
}
/* (non-Javadoc)