Bug 285529 [CommonNavigator] Incorrect pipeline logic for interceptXxx methods
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
}
	private boolean pipelineInterceptUpdate(final NavigatorContentExtension overrideableExtension,
			final PipelinedViewerUpdate anUpdateSynchronization, final Object refreshable) {
		final boolean[] intercepted = new boolean[1];
		final NavigatorContentExtension[] overridingExtensionsForPossibleChild = overrideableExtension
				.getOverridingExtensionsForPossibleChild(refreshable);
		for (int i = 0; i < overridingExtensionsForPossibleChild.length; i++) {
			if (overridingExtensionsForPossibleChild[i].internalGetContentProvider().isPipelined()) {
				final NavigatorContentExtension nceLocal = overridingExtensionsForPossibleChild[i];
				SafeRunner.run(new NavigatorSafeRunnable() {
					public void run() throws Exception {
						intercepted[0] |= ((IPipelinedTreeContentProvider) nceLocal
								.internalGetContentProvider())
								.interceptUpdate(anUpdateSynchronization);
						if (nceLocal.getDescriptor().hasOverridingExtensions())
							intercepted[0] |= pipelineInterceptUpdate(nceLocal,
									anUpdateSynchronization, refreshable);
					}
					public void handleException(Throwable e) {
						NavigatorPlugin.logError(0, NLS.bind(
								CommonNavigatorMessages.Exception_Invoking_Extension, new Object[] {
										nceLocal.getDescriptor().getId(), refreshable }), e);
					}
				});
			}
		}
		return intercepted[0];
	}
}