Bug 255984 - [planner] [ui] Uninstall does not remove entry from Installed Software
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/PlanAnalyzer.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/PlanAnalyzer.java
index 06b8cf7..2195a58 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/PlanAnalyzer.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/PlanAnalyzer.java
@@ -69,6 +69,14 @@
 			return report;
 		}
 
+		if (nothingToDo(originalRequest)) {
+			report.addSummaryStatus(getStatus(IStatusCodes.UNEXPECTED_NOTHING_TO_DO, null));
+			IStatus[] details = originalStatus.getChildren();
+			for (int i = 0; i < details.length; i++)
+				report.addSummaryStatus(details[i]);
+			return report;
+		}
+
 		// If there was already some status supplied before resolution, this should get included
 		// with the report.  For example, this might contain information about the profile request
 		// being altered before resolution began.
@@ -139,4 +147,8 @@
 			return name;
 		return iu.getId();
 	}
+
+	private static boolean nothingToDo(ProfileChangeRequest request) {
+		return request.getAddedInstallableUnits().length == 0 && request.getRemovedInstallableUnits().length == 0 && request.getInstallableUnitProfilePropertiesToAdd().size() == 0 && request.getInstallableUnitProfilePropertiesToRemove().size() == 0;
+	}
 }
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
index 7d1147a..00168f4 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
@@ -165,7 +165,7 @@
 PlanStatusHelper_IgnoringImpliedDowngrade="{0}" will be ignored because a newer version is already installed. 
 PlanStatusHelper_ImpliedUpdate="{0}" is already installed, so an update will be performed instead.
 PlanStatusHelper_Items=Items
-PlanStatusHelper_NothingToDo=Cannot complete the request.  See the details.
+PlanStatusHelper_NothingToDo=Cannot complete the request.
 PlanStatusHelper_AlreadyInstalled="{0}" will be ignored because it is already installed.
 PlanStatusHelper_AnotherOperationInProgress=Cannot continue the operation.  There is another install operation in progress.
 PlanStatusHelper_Launch=Launch...