[eclipse/f19] Fix the dropins reconciliation.

Krzysztof Daniel kdaniel at fedoraproject.org
Thu Jun 6 09:09:22 UTC 2013


commit 82a95577fe61e2f306bdf40ed585e401973887fe
Author: Krzysztof Daniel <kdaniel at redhat.com>
Date:   Thu Jun 6 11:08:35 2013 +0200

    Fix the dropins reconciliation.

 eclipse-fix-dropins.patch |   46 +++++++++++++++++++++++++++++++++++++++++---
 eclipse.spec              |    5 +++-
 2 files changed, 46 insertions(+), 5 deletions(-)
---
diff --git a/eclipse-fix-dropins.patch b/eclipse-fix-dropins.patch
index 159445b..d9f3f2e 100644
--- a/eclipse-fix-dropins.patch
+++ b/eclipse-fix-dropins.patch
@@ -27,7 +27,7 @@
 +					// therefore dropins reconciliation can't load dropins plugins installed into user configuration
 +					// after the user configuration has been dropped.
 +					// It is necessary to unset this property.
-+					System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
++					//System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
  				} else {
  					//This is the first time we create the shared profile. Tag it as such and also remember the timestamp of the base
  					internalSetProfileStateProperty(profile, profile.getTimestamp(), IProfile.STATE_PROP_SHARED_INSTALL, IProfile.STATE_SHARED_INSTALL_VALUE_INITIAL);
@@ -38,9 +38,47 @@
 +		// if the property is set by OSGI, and there is no new timestamp (because of the previous condition)
 +		// ignore current profile. This will happen only once, because SERVICE_SHARED_INSTALL_NEW_TIMESTAMP
 +		// is set during profile reset.
-+		if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))) //$NON-NLS-1$ //$NON-NLS-2$
-+			return true;
-+
++		if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))){ //$NON-NLS-1$ //$NON-NLS-2$
++			System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
++			return true;}
  		String baseTimestamp = getBaseTimestamp(profile.getProfileId());
  		if (baseTimestamp == null)
  			return false;
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
+@@ -570,6 +570,7 @@
+ 
+ 		// get all IUs from all our repos 
+ 		IQueryResult<IInstallableUnit> allIUs = getAllIUsFromRepos();
++		HashSet<IInstallableUnit> removedFromAllIUs = new HashSet<IInstallableUnit>();
+ 		for (Iterator<IInstallableUnit> iter = allIUs.iterator(); iter.hasNext();) {
+ 			final IInstallableUnit iu = iter.next();
+ 			IInstallableUnit existing = profileIUs.get(iu);
+@@ -583,6 +584,7 @@
+ 				// (and more expensive) way to find this out is to do an IU profile property query.
+ 				if (two == null) {
+ 					// the IU is already installed so don't mark it as a dropin now - see bug 404619.
++					removedFromAllIUs.add(iu);
+ 					iter.remove();
+ 					continue;
+ 				}
+@@ -625,7 +627,7 @@
+ 			}
+ 			// if the IU from the profile is in the "all available" list, then it is already added
+ 			// otherwise if it isn't in the repo then we have to remove it from the profile.
+-			if (!all.contains(iu))
++			if (!all.contains(iu) && !removedFromAllIUs.contains(iu))
+ 				toRemove.add(iu);
+ 		}
+ 
+@@ -799,8 +801,8 @@
+ 			IStatus installerPlanStatus = engine.perform(plan.getInstallerPlan(), phaseSet, monitor);
+ 			if (!installerPlanStatus.isOK())
+ 				return installerPlanStatus;
+-
+-			applyConfiguration(true);
++			if (isReconciliationApplicationRunning())
++				applyConfiguration(true);
+ 		}
+ 		return engine.perform(plan, phaseSet, monitor);
+ 	}
diff --git a/eclipse.spec b/eclipse.spec
index 242235e..096375a 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -52,7 +52,7 @@ fi;
 Summary:        An open, extensible IDE
 Name:           %{?scl_prefix}eclipse
 Version:        %{eclipse_version}
-Release:        0.59.git7bf397%{?dist}
+Release:        0.60.git7bf397%{?dist}
 License:        EPL
 Group:          Development/Tools
 URL:            http://www.eclipse.org/
@@ -1009,6 +1009,9 @@ fi
 %{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi.util_*
 
 %changelog
+* Thu Jun 6 2013 Krzysztof Daniel <kdaniel at redhat.com> 1:4.3.0-0.60.git7bf397
+- Fix the dropins reconciliation.
+
 * Tue Jun 4 2013 Alexander Kurtakov <akurtako at redhat.com> 1:4.3.0-0.59.git7bf397
 - Fix bogus dates and SWT description.
 


More information about the scm-commits mailing list