Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 181684 - (Near) Infinite loop in ResolverImpl.checkUsesContraints()
Summary: (Near) Infinite loop in ResolverImpl.checkUsesContraints()
Status: RESOLVED DUPLICATE of bug 181327
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: Framework (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: equinox.framework-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-04-09 21:34 EDT by Min Idzelis CLA
Modified: 2007-04-09 22:19 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Min Idzelis CLA 2007-04-09 21:34:16 EDT
Build ID: M6

Steps To Reproduce:
When I change the target platform to an internal target of Rational Application Developer, the "Reading target platform..." diagram goes into a hang. I tried to debug it, and it seems like it isn't an infinite loop.. since it is running, but it looks like it's doing a n^n algorithm (guess) on a target with 1500+ plugins so it takes forever. 

Complicating this is the fact that the dialog is NOT cancelable, so I have to terminate the process forcefully. 

The method ResolverImpl.findBestCombination(ResolverBundle[] , ResolverConstraint[], int[]) never returns. 

Here's a stack:
Thread [ModalContext] (Suspended)	
	ArrayList<E>(AbstractList<E>).<init>() line: 76 [local variables unavailable]	
	ArrayList<E>.<init>(int) line: 134	
	GroupingChecker.createPackageRoots(ResolverBundle, String, ArrayList) line: 159	
	GroupingChecker.getPackageRoots(ResolverBundle, String, ArrayList) line: 136	
	GroupingChecker.isConsistentInternal(ResolverBundle, ResolverExport, boolean) line: 107	
	GroupingChecker.isConsistentInternal(ResolverBundle, ResolverBundle, ArrayList, boolean) line: 68	
	GroupingChecker.isConsistent(ResolverBundle, ResolverBundle) line: 52	
	ResolverImpl.getConflicts(ResolverBundle[]) line: 594	
	ResolverImpl.findBestCombination(ResolverBundle[], ResolverConstraint[], int[]) line: 551	
	ResolverImpl.findBestCombination(ResolverBundle[], ResolverConstraint[]) line: 525	
	ResolverImpl.checkUsesConstraints(ResolverBundle[], Dictionary[], ArrayList) line: 484	
	ResolverImpl.resolveBundles0(ResolverBundle[], Dictionary[], ArrayList) line: 479	
	ResolverImpl.resolveBundles(ResolverBundle[], Dictionary[], ArrayList) line: 449	
	ResolverImpl.resolve(BundleDescription[], Dictionary[]) line: 336	
	UserState(StateImpl).resolve(boolean, BundleDescription[]) line: 345	
	UserState(StateImpl).resolve(boolean) line: 404	
	PDEState(MinimalState).internalResolveState(boolean) line: 235	
	PDEState(MinimalState).resolveState(boolean) line: 224	
	PDEState.readTargetState(URL[], IProgressMonitor) line: 106	
	PDEState.<init>(URL[], URL[], boolean, IProgressMonitor) line: 81	
	PDEState.<init>(URL[], boolean, IProgressMonitor) line: 72	
	TargetPluginsTab$ReloadOperation.run(IProgressMonitor) line: 147	
	ModalContext$ModalContextThread.run() line: 113	


More information:
Comment 1 Wassim Melhem CLA 2007-04-09 22:19:14 EDT

*** This bug has been marked as a duplicate of bug 181327 ***