Community
Participate
Working Groups
Created attachment 126585 [details] SimpleProfileRegistry patch This patch is to remove publishRepositoryReferences() and associated methods from the SimpleProfileRegistry which are used to push repositories stored in the profile into the repository managers. See also bug 262964
This code also causes deadlock due to interaction between profile lock and repository manager lock: Thread [main] (Suspended) (out of synch) SimpleProfileRegistry.getProfile(String) line: 127 (out of synch) Activator.getBundlePoolRepository() line: 84 BundlePoolFilteredListener.<init>(DirectoryChangeListener) line: 27 SiteListener.synchronizeRepositories(ExtensionLocationMetadataRepository, ExtensionLocationArtifactRepository, File) line: 98 ExtensionLocationMetadataRepository.ensureInitialized() line: 61 ExtensionLocationMetadataRepository.getProperties() line: 163 MetadataRepositoryManager(AbstractRepositoryManager).addRepository(IRepository, boolean, String) line: 133 MetadataRepositoryManager(AbstractRepositoryManager).loadRepository(URI, IProgressMonitor, String, int) line: 616 MetadataRepositoryManager.loadRepository(URI, int, IProgressMonitor) line: 92 MetadataRepositoryManager.loadRepository(URI, IProgressMonitor) line: 88 SimplePlanner.gatherAvailableInstallableUnits(IInstallableUnit[], URI[], ProvisioningContext, IProgressMonitor) line: 231 SimplePlanner.getProvisioningPlan(ProfileChangeRequest, ProvisioningContext, IProgressMonitor) line: 271 Application.updateRoamingProperties(IProfile) line: 541 Application.run(String[]) line: 402 Application.start(IApplicationContext) line: 508 EclipseAppHandle.run(Object) line: 194 EclipseAppLauncher.runApplication(Object) line: 110 EclipseAppLauncher.start(Object) line: 79 EclipseStarter.run(Object) line: 368 EclipseStarter.run(String[], Runnable) line: 179 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available Method.invoke(Object, Object...) line: not available Main.invokeFramework(String[], URL[]) line: 556 Main.basicRun(String[]) line: 511 Main.run(String[]) line: 1284 Thread [Worker-1] (Suspended) (out of synch) MetadataRepositoryManager(AbstractRepositoryManager).addRepository(URI, boolean, boolean) line: 167 MetadataRepositoryManager(AbstractRepositoryManager).addRepository(URI) line: 149 SimpleProfileRegistry.doPublishRepositories(IRepositoryManager, String) line: 268 (out of synch) <obsolete method in<unknown declaring type>> (out of synch) <obsolete method in<unknown declaring type>> (out of synch) <obsolete method in<unknown declaring type>> (out of synch) SimpleProfileRegistry.getProfile(String) line: 127 (out of synch) ProfilePreferences.computeProfile(String) line: 63 ProfilePreferences.save() line: 150 ProfilePreferences(EclipsePreferences).flush() line: 352 ProfilePreferences(EclipsePreferences).flush() line: 340 AbstractRepositoryManager$SaveJob.run(IProgressMonitor) line: 57 Worker.run() line: 55
Because of the deadlock risk I'm going to do this sooner.
Fixed in HEAD.
*** Bug 267726 has been marked as a duplicate of this bug. ***