Update to -Bug 243878 - first API addition causes cascade of errors

Change-Id: I872b8161ac07461a0acc75c15798ad30877b11b9
Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
index 8f73fcd..045767f 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
@@ -83,10 +83,11 @@
 					new ConfigureProblemSeverityForAPIToolsResolution(marker) };
 			}
 			case IApiMarkerConstants.SINCE_TAG_MARKER_ID: {
-				IMarkerResolution[] res = hasVersionProblems() ? 
+				IMarker markerVersion = getVersionProblems(marker);
+				IMarkerResolution[] res = (markerVersion != null) ?
 				new IMarkerResolution[] {
 					new ConfigureProblemSeverityForAPIToolsResolution(marker),
-					new SinceTagAfterVersionUpdateResolution(marker),
+					new SinceTagAfterVersionUpdateResolution(markerVersion, marker),
 					new SinceTagResolution(marker),
 					new FilterProblemResolution(marker),
 					new FilterProblemWithCommentResolution(marker) }:
@@ -189,17 +190,32 @@
 
 	}
 
-	private boolean hasVersionProblems() {
+	private IMarker getVersionProblems(IMarker marker) {
+		IProject project = null;
+		IProject project2 = null;
+		IResource resource = marker.getResource();
+		if (resource != null) {
+			project = resource.getProject();
+		}
 		IMarker markerVersion = null;
 		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 		try {
 			IMarker[] findMarkers = root.findMarkers(IApiMarkerConstants.VERSION_NUMBERING_PROBLEM_MARKER, false,
 					IResource.DEPTH_INFINITE);
-			if (findMarkers.length == 1) {
-				markerVersion = findMarkers[0];
+			for (IMarker iMarker : findMarkers) {
+				IResource resource2 = iMarker.getResource();
+				if (resource2 != null) {
+					project2 = resource2.getProject();
+					if(project !=null && project2 !=null) {
+						if(project.equals(project2)) {
+							markerVersion = iMarker;
+							break;
+						}
+					}
+				}
 			}
 		} catch (CoreException e) {
 		}
-		return markerVersion != null;
+		return markerVersion;
 	}
 }
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java
index 5e3e0cf..d56b6d4 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java
@@ -14,34 +14,18 @@
 package org.eclipse.pde.api.tools.ui.internal.markers;
 
 import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.pde.api.tools.internal.provisional.IApiMarkerConstants;
 
 public class SinceTagAfterVersionUpdateResolution extends SinceTagResolution {
 
 	IMarker markerVersion = null;
-	public SinceTagAfterVersionUpdateResolution(IMarker marker) {
+	public SinceTagAfterVersionUpdateResolution(IMarker markerVer ,IMarker marker) {
 		super(marker);
-		updateVersionMarker();
+		markerVersion = markerVer;
 
 	}
 
-	private void updateVersionMarker() {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		try {
-			IMarker[] findMarkers = root.findMarkers(IApiMarkerConstants.VERSION_NUMBERING_PROBLEM_MARKER, false,
-					IResource.DEPTH_INFINITE);
-			if (findMarkers.length == 1) {
-				markerVersion = findMarkers[0];
-			}
-		} catch (CoreException e) {
-
-		}
-	}
 
 	@Override
 	public String getLabel() {
@@ -49,9 +33,6 @@
 	}
 	@Override
 	public void run(final IMarker marker) {
-
-
-
 		if (markerVersion != null) {
 			new VersionNumberingResolution(markerVersion).run(markerVersion);
 			this.newVersionValue = markerVersion.getAttribute(IApiMarkerConstants.MARKER_ATTR_VERSION, null);