Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 337371 - GroupingChecker.populateRoots() can take a very long time
Summary: GroupingChecker.populateRoots() can take a very long time
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: Framework (show other bugs)
Version: 3.6   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 3.6.2+   Edit
Assignee: Thomas Watson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 337272
Blocks:
  Show dependency tree
 
Reported: 2011-02-16 16:45 EST by Thomas Watson CLA
Modified: 2011-02-21 11:02 EST (History)
3 users (show)

See Also:


Attachments
3.6.2+ patch (5.37 KB, text/plain)
2011-02-21 10:32 EST, Thomas Watson CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Watson CLA 2011-02-16 16:45:46 EST
Cloning bug to consider releasing to 3.6.2+

+++ This bug was initially created as a clone of Bug #337272 +++

The isConsistentClassSpace checking that is triggered for bundles with DynamicImport-Package can take a *very* long time to complete. In some (admittedly poorly structured bundles), this resolution can take over 30 minutes.

Here's a snippet of the call stack while we're churning away in populateRoots():

	at org.eclipse.osgi.internal.module.ResolverExport.getUsesDirective(ResolverExport.java:45)
	at org.eclipse.osgi.internal.module.GroupingChecker$PackageRoots.isConsistentClassSpace(GroupingChecker.java:307)
	at org.eclipse.osgi.internal.module.GroupingChecker.isConsistentInternal(GroupingChecker.java:113)
	at org.eclipse.osgi.internal.module.GroupingChecker.isConsistentInternal(GroupingChecker.java:67)
	at org.eclipse.osgi.internal.module.GroupingChecker.populateRoots(GroupingChecker.java:36)
	at org.eclipse.osgi.internal.module.ResolverImpl.resolveDynamicImport(ResolverImpl.java:1569)
	- locked <0x93b1aee0> (a org.eclipse.osgi.internal.module.ResolverImpl)
	at org.eclipse.osgi.internal.resolver.StateImpl.linkDynamicImport(StateImpl.java:835)
	- locked <0x939a1cb8> (a java.lang.Object)
	at org.eclipse.osgi.internal.loader.BundleLoader.findDynamicSource(BundleLoader.java:1068)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:474)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Comment 1 Thomas Watson CLA 2011-02-21 10:32:25 EST
Created attachment 189416 [details]
3.6.2+ patch

Same as the patch in bug337272 but with copyright dates updated.
Comment 2 Thomas Watson CLA 2011-02-21 11:02:02 EST
patch released for 3.6.2+.