Bug 123977 [Markers] NPE in ActionCopyMarker.setClipboard
build I20060110 - select some problems in the Problems view - choose Copy from the context menu - it has no visible effect, and the clipboard is unchanged - the log has: java.lang.NullPointerException at org.eclipse.ui.views.markers.internal.ActionCopyMarker.setClipboard(ActionCopyMarker.java:108) at org.eclipse.ui.views.markers.internal.ActionCopyMarker.run(ActionCopyMarker.java:82) at org.eclipse.jface.action.Action.runWithEvent(Action.java:492) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:530) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:480) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:392) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:914) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3287) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2907) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1790) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1754) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:403) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:381) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
*/
		public boolean shouldRun() {
			
			return clipboard != null && buildDone;
		}
		/**
		 * Get the collection of Markers to remove.
		 * 
		 * @param existingMarkers
		 * @return Collection of ConcreteMarker
		 */
		private Collection getExistingMarkers(Collection existingMarkers) {
			if (existingMarkers.isEmpty())
				return Util.EMPTY_COLLECTION;
			Collection toRemove = new ArrayList();
			MarkerList currentList = getCurrentMarkers();
			Iterator removes = existingMarkers.iterator();
			while (removes.hasNext()) {
				Object next = currentList.getMarker((IMarker) removes.next());
				if (next != null)
					toRemove.add(next);
			}
			return toRemove;
		}
		/**
		 * Get the ConcreteMarkers being added after filtering.
		 * 
		 * @param addedMarkers
		 *            Collection of IMarker
		 * @return Collection of ConcreteMarker