Bug 578667 - Preparing a new p2 installation while a running p2
installation runs results now in an exception

Guard calls that compute the JRE compatibility when there is a null
change request.

Change-Id: I1b426dcfd4bf9e75d86449e92edad4019ef2ca36
Signed-off-by: Ed Merks <ed.merks@gmail.com>
Reviewed-on: https://git.eclipse.org/r/c/equinox/rt.equinox.p2/+/190676
Tested-by: Equinox Bot <equinox-bot@eclipse.org>
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
index 7147955..47901c6 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ProvisioningOperationWizard.java
@@ -204,7 +204,7 @@
 					if (!operation.hasResolved()) {
 						operation.resolveModal(monitor);
 					}
-					if (operation.hasResolved()) {
+					if (operation.getProfileChangeRequest() != null) {
 						this.localJRECheckPlan = ProvUI.toCompabilityWithCurrentJREProvisioningPlan(operation, null);
 						if (!compatibleWithCurrentEE()) {
 							couldNotResolveStatus = localJRECheckPlan.getStatus();
@@ -215,6 +215,10 @@
 				return false;
 			}
 		}
+		if (localJRECheckPlan == null) {
+			return true;
+		}
+
 		IStatus currentEEPlanStatus = localJRECheckPlan.getStatus();
 		if (currentEEPlanStatus.getSeverity() != IStatus.ERROR) {
 			return true;
@@ -337,7 +341,8 @@
 			try {
 				runnableContext.run(true, true, monitor -> {
 					operation.resolveModal(monitor);
-					if (getPolicy().getCheckAgainstCurrentExecutionEnvironment()) {
+					if (operation.getProfileChangeRequest() != null
+							&& getPolicy().getCheckAgainstCurrentExecutionEnvironment()) {
 						this.localJRECheckPlan = ProvUI.toCompabilityWithCurrentJREProvisioningPlan(operation, monitor);
 						if (!compatibleWithCurrentEE()) {
 							couldNotResolveStatus = localJRECheckPlan.getStatus();