Bug 107121 - [EditorMgmt] not responding when opening a folder with a lot of files
Summary: [EditorMgmt] not responding when opening a folder with a lot of files
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows 2000
: P3 blocker with 1 vote (vote)
Target Milestone: 3.1.1   Edit
Assignee: Kim Horne CLA Friend
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 106158
  Show dependency tree
 
Reported: 2005-08-16 11:42 EDT by yakovmuller CLA Friend
Modified: 2006-05-11 14:14 EDT (History)
6 users (show)

See Also:


Attachments
Patch against org.eclipse.ui.ide (1.47 KB, patch)
2005-09-14 13:48 EDT, Kim Horne CLA Friend
no flags Details | Diff
two new classes, addition to plugin.xml, and "suite" addition. (12.07 KB, patch)
2005-09-19 02:49 EDT, David Williams CLA Friend
no flags Details | Diff
2500 "neutral" files with an extension of htmltestonly (1.82 MB, application/octet-stream)
2005-09-19 02:56 EDT, David Williams CLA Friend
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description yakovmuller CLA Friend 2005-08-16 11:42:36 EDT
not responding when opening a folder with a lot of files, I have enough free 
CPU and memory available 

Eclipse SDK Version: 3.1.0

downloaded wtp all in one at http://www.eclipse.org/downloads/download.php?
file=/webtools/downloads/drops/R-0.7-200507290654/wtp-all-in-one-0.7-win32.zip

windows 2000
Pentium 4  1.7 GHz processor 
512mb RAM
Comment 1 Pascal Rapicault CLA Friend 2005-08-16 15:48:40 EDT
Could you be more specific about the quantity behind "a lot" of files?
Did any of the projects in your workspace has been created by WTP?
Comment 2 John Arthorne CLA Friend 2005-08-16 16:23:08 EDT
Please provide more details:

 - What do you mean by "not responding"?  Did it hang completely, or just pause
for a few seconds?  At this point, is the CPU usage still high?  If it is indeed
hung, then please launch with java.exe (eclipse -vm d:\jre\bin\java.exe) and hit
Ctrl+Break in the command window when it is hung.  This will produce a stack
dump that will show where it is hanging.

 - Does this only happen with WTP projects?
 - Where are you "opening a folder" - in the Navigator view, or elsewhere?
Comment 3 yakovmuller CLA Friend 2005-08-16 16:35:10 EDT
It happens even in the navigater view

here is the Thread Dump
Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode):

"Worker-3" prio=5 tid=0x0094b850 nid=0x6dc in Object.wait() [254ff000..254ffd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
       - locked <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:205)
       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)

"Worker-2" prio=5 tid=0x2439ea20 nid=0x6d0 in Object.wait() [254bf000..254bfd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
       - locked <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:205)
       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)

"Worker-1" prio=5 tid=0x2480bb40 nid=0x694 in Object.wait() [2547f000..2547fd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
       - locked <0x11600010> (a org.eclipse.core.internal.jobs.WorkerPool)
       at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:205)
       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)

"Java indexing" daemon prio=4 tid=0x246aee18 nid=0x69c in Object.wait() 
[2534f000..2534fd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x1178e4c0> (a 
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
       at java.lang.Object.wait(Object.java:429)
       at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:349)
       - locked <0x1178e4c0> (a 
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
       at java.lang.Thread.run(Thread.java:534)

"Worker-0" prio=5 tid=0x2453ea10 nid=0x2cc waiting on condition 
[2513f000..2513fd88]
       at java.lang.Thread.sleep(Native Method)
       at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run
(DecorationScheduler.java:249)
       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

"Start Level Event Dispatcher" daemon prio=5 tid=0x2444d648 nid=0x554 in 
Object.wait() [2462f000..2462fd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x11488778> (a 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
       at java.lang.Object.wait(Object.java:429)
       at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent
(EventManager.java:349)
       - locked <0x11488778> (a 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
       at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run
(EventManager.java:287)

"Framework Event Dispatcher" daemon prio=5 tid=0x0099c0e8 nid=0x520 in 
Object.wait() [245ef000..245efd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x1143f5b0> (a 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
       at java.lang.Object.wait(Object.java:429)
       at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent
(EventManager.java:349)
       - locked <0x1143f5b0> (a 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
       at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run
(EventManager.java:287)

"State Data Manager" daemon prio=5 tid=0x2444fb38 nid=0x84 waiting on condition 
[245af000..245afd88]
       at java.lang.Thread.sleep(Native Method)
       at org.eclipse.osgi.framework.adaptor.core.StateManager.run
(StateManager.java:289)
       at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=0x00921d10 nid=0x4f8 waiting on 
condition [0..0]

"Finalizer" daemon prio=9 tid=0x0091eee0 nid=0x6cc in Object.wait() 
[2422f000..2422fd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x113c0138> (a java.lang.ref.ReferenceQueue$Lock)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
       - locked <0x113c0138> (a java.lang.ref.ReferenceQueue$Lock)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
       at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x0091da58 nid=0x324 in Object.wait() 
[241ef000..241efd88]
       at java.lang.Object.wait(Native Method)
       - waiting on <0x113c01a0> (a java.lang.ref.Reference$Lock)
       at java.lang.Object.wait(Object.java:429)
       at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
       - locked <0x113c01a0> (a java.lang.ref.Reference$Lock)

"main" prio=7 tid=0x00235d58 nid=0x4f0 runnable [6d000..6fc40]
       at java.io.FileInputStream.available(Native Method)
       at 
org.eclipse.core.internal.resources.ContentDescriptionManager$LazyFileInputStrea
m.available(ContentDescriptionManager
       at org.eclipse.core.internal.content.LazyInputStream.available
(LazyInputStream.java:31)
       at org.eclipse.wst.html.core.internal.contenttype.ByteReader.ready
(ByteReader.java:98)
       at 
org.eclipse.wst.html.core.internal.contenttype.HTMLResourceEncodingDetector.chec
kHeuristics(HTMLResourceEncodingDetec

       at 
org.eclipse.wst.html.core.internal.contenttype.HTMLResourceEncodingDetector.pars
eInput(HTMLResourceEncodingDetector.j
       at 
org.eclipse.wst.html.core.internal.contenttype.AbstractResourceEncodingDetector.
getEncodingMemento(AbstractResourceEn
or.java:138)
       at 
org.eclipse.wst.html.core.internal.contenttype.ContentDescriberForHTML.handleCal
culations(ContentDescriberForHTML.jav
       at 
org.eclipse.wst.html.core.internal.contenttype.ContentDescriberForHTML.calculate
SupportedOptions(ContentDescriberForH

       at 
org.eclipse.wst.html.core.internal.contenttype.ContentDescriberForHTML.describe
(ContentDescriberForHTML.java:34)
       at org.eclipse.core.internal.content.ContentType.describe
(ContentType.java:162)
       at 
org.eclipse.core.internal.content.ContentType.internalGetDescriptionFor
(ContentType.java:448)
       at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor
(ContentTypeCatalog.java:312)
       at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor
(ContentTypeCatalog.java:316)
       at org.eclipse.core.internal.content.ContentTypeMatcher.getDescriptionFor
(ContentTypeMatcher.java:87)
       at 
org.eclipse.core.internal.resources.ContentDescriptionManager.readDescription
(ContentDescriptionManager.java:394)
       at 
org.eclipse.core.internal.resources.ContentDescriptionManager.getDescriptionFor
(ContentDescriptionManager.java:333)
       - locked <0x116cb960> (a 
org.eclipse.core.internal.resources.ContentDescriptionManager)
       at org.eclipse.core.internal.resources.File.getContentDescription
(File.java:276)
       at org.eclipse.ui.ide.IDE.getContentType(IDE.java:960)
       at org.eclipse.ui.internal.ide.model.WorkbenchFile.getBaseImage
(WorkbenchFile.java:34)
       at org.eclipse.ui.internal.ide.model.WorkbenchResource.getImageDescriptor
(WorkbenchResource.java:45)
       at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getWorkbenchIma
geDescriptor(JavaElementImageProvider
       at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.computeDescript
or(JavaElementImageProvider.java:117)
       at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getImageLabel
(JavaElementImageProvider.java:92)
       at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage
(JavaUILabelProvider.java:138)
       at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage
(DecoratingLabelProvider.java:82)
       at org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel
(DecoratingLabelProvider.java:212)
       at org.eclipse.jface.viewers.StructuredViewer.buildLabel
(StructuredViewer.java:1855)
       at org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java:228)
       at 
org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run
(AbstractTreeViewer.java:85)
       at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1044)
       at org.eclipse.core.runtime.Platform.run(Platform.java:783)
       at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
       at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
       at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem
(AbstractTreeViewer.java:621)
       at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run
(StructuredViewer.java:434)
       at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1044)
       at org.eclipse.core.runtime.Platform.run(Platform.java:783)
       at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
       at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
       at org.eclipse.jface.viewers.StructuredViewer.updateItem
(StructuredViewer.java:1763)
       at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem
(AbstractTreeViewer.java:535)
       at org.eclipse.jface.viewers.AbstractTreeViewer$1.run
(AbstractTreeViewer.java:514)
       at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
       at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:494)
       at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand
(AbstractTreeViewer.java:948)
       at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded
(AbstractTreeViewer.java:959)
       at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:180)
       at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:867)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:852)
       at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:3704)
       at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3568)
       at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:1035)
       at org.eclipse.swt.widgets.Control.windowProc(Control.java:3089)
       at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
       at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
       at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1580)
       at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:219)
       at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:2815)
       at org.eclipse.swt.widgets.Control.windowProc(Control.java:3071)
       at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:2391)
       at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
       at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
       at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1656)
       at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2711)
       at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
       at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
       at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:367)
       at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
       at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:103)
       at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:226)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:376)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:163)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:324)
       at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
       at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
       at org.eclipse.core.launcher.Main.run(Main.java:973)
       at org.eclipse.core.launcher.Main.main(Main.java:948)

"VM Thread" prio=5 tid=0x0095d058 nid=0x514 runnable

"VM Periodic Task Thread" prio=10 tid=0x0023ea78 nid=0x2f8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x009213c0 nid=0x604 runnable




Comment 4 abrahamb banda CLA Friend 2005-08-16 16:43:52 EDT
Hi
I have also the same problem by opening a big folder,
please fix it emergency.
Thank
Comment 5 yakovmuller CLA Friend 2005-08-16 16:50:57 EDT
I forgot to mention the project is a regular java project not a wtp project
( it was created with a previous eclipse version)
Comment 6 John Arthorne CLA Friend 2005-08-16 17:37:50 EDT
What do you mean by "not responding"?  Does it hang completely, or just pause
for a long time?  The stack trace does not look like a hung process - maybe it
is just an issue of slow performance?
Comment 7 yakovmuller CLA Friend 2005-08-16 17:43:18 EDT
this Thread dump that I had  posted was right away, I'll wait a few minutes and 
than check if the Thread Dump is different.

I have waited an half hour and it still hung.

how long would you think it is acceptable to wait ?
Comment 8 Rafael Chaves CLA Friend 2005-08-16 17:46:59 EDT
I agree with John, this is not blocked, it is actually doing too much work in
the UI thread (on Windows, this would cause a "Eclipse is not responding"
caption to appear on the window bar). I am curious: how many HTML files you have
in that folder?

Kim, what if you just used name-based content type matching when figuring out
the image to use to decorate a resource? The icon showing would not match the
content type sometimes (might show an XML icon for an Ant script no called
build.xml), but the performance would be much better (no files read). The
context menu actions should still use IFile.getContentDescription().

You could replace:

IContentType contentType = file.getContentDescription().getContentType();

with something like this:

IContentTypeMatcher matcher = file.getProject().getContentTypeMatcher();
IContentType contentType = matcher.findContentType(file.getName());
Comment 9 yakovmuller CLA Friend 2005-08-16 17:52:29 EDT
I have their over 500 files. ( and this is with out the files I have in 
subfolders )
Comment 10 John Arthorne CLA Friend 2005-08-18 16:46:52 EDT
Moving to UI to consider Rafael's suggestion.  Currently every file is parsed to
determine the content type for computing the file's label in the Navigator. 
This is quite expensive for complex content types and large directories.
Comment 11 Kim Horne CLA Friend 2005-08-19 08:31:49 EDT
This is probably a good candidate for 3.1.1
Comment 12 Kim Horne CLA Friend 2005-08-19 08:50:00 EDT
Minimal guessing fix is in HEAD.  Tod suggested that we augment this along the same lines as decorators 
- use the guess for the initial value then spawn a job to calculate the real image.  I looked into this in the 
3.1 time span and it was not a trivial amount of work to get our workbench model objects to behave in 
this manner.  We might be able to revisit this at some point.

Mvm, 3.1.1?
Comment 13 Kim Horne CLA Friend 2005-08-19 09:20:46 EDT
Marking as fixed until the decision is made.
Comment 14 David Williams CLA Friend 2005-09-14 08:37:05 EDT
Just to confirm, did this make it into 3.1.1? It appears so, from some CVS tags
(having an M August tag) but hard for me to tell). 

If not, I would recommend it. See also bug 106158. 
Comment 15 Michael Van Meekeren CLA Friend 2005-09-14 08:44:29 EDT
I would appreciate it if someone who has this problem could try out a 3.2 build
(I20050913 for example) to see if the change has actually helped before we
consider this for 3.1.1?

Comment 16 David Williams CLA Friend 2005-09-14 12:10:07 EDT
Consider it confirmed. So, I'll re-open as an official request for inclusion in
3.1.1. 


I used our automated test, as mentioned in bug 106158 in my development
environment. (And, I think, pretty good test ... creates the project, with
files, THEN begins timing, then expands tree, etc).

I loaded following classes in my 3.1 baesd "development workspace"

WorbenchFile   revision 1.6 (instead of 1.5)
IDE revision 1.42 (instead of 1.41)


with workbench fix

Scenario
'org.eclipse.wst.html.ui.tests.performance.OpenNavigatorFolderTest#testOpenNa
vigatorFolder()' (average over 1 samples):

  Used Java Heap: 674.41K
  Working Set: 1.88M
  Committed: 1.24M
  Working Set Peak: 1.79M
* Elapsed Process: 821 ms
  Kernel time: 40 ms
  Page Faults: 534
  CPU Time: 731 ms
  GDI Objects: 4


without workbench fix

Scenario
'org.eclipse.wst.html.ui.tests.performance.OpenNavigatorFolderTest#testOpenNa
vigatorFolder()' (average over 1 samples):

  Used Java Heap: 537.75K
  Working Set: 3.35M
  Committed: 2.42M
  Working Set Peak: 3.26M
* Elapsed Process: 3.47 m
  Kernel time: 2.46 m
  Page Faults: 1.11K
  CPU Time: 3.38 m
  GDI Objects: 4


* Notice the elapsed time goes from 3.46 Minutes to 821 msecs.
(I ran each test a few times, from scratch,
to make sure consistent neighborhood, which is was, but
just reporting one run).

After confirming with these automated tests, I confirmed from the point of
view of an end user, using the same test project as above, with "second instance"
of eclipse in dev. environment. With fix, very snappy expansion of project in
navigator view. Without fix, I had plenty of time to finish submitting this
bug request :) [seemed at least 3 minutes!]

Comment 17 Michael Van Meekeren CLA Friend 2005-09-14 13:10:30 EDT
I'm in favour of putting this into 3.1.1.

It would be nice David if you could you provide a generic version of your test
that can put in our performance test suite to ensure we don't regress?  Is this
possible?

Comment 18 Kim Horne CLA Friend 2005-09-14 13:48:37 EDT
Created attachment 27127 [details]
Patch against org.eclipse.ui.ide

This patch differs from what's currently in HEAD.  The solution applied to head
introduced a new API method on IDE to guess at the content type.  This patch
has the method inlined in WorkbenchFile.
Comment 19 Karice McIntyre CLA Friend 2005-09-16 13:11:16 EDT
This patch should be released before RC2 build on Sept 23rd for testing 
purposes.
Comment 20 David Williams CLA Friend 2005-09-19 02:17:57 EDT
Just to make a nit comment on the patch ... is it ok to catch and ignore a
CoreException? Shouldn't it at least be logged. Just a little pet peeve of mine, 
since sometimes that practice makes bugs reeally hard to track down. 


Comment 21 David Williams CLA Friend 2005-09-19 02:45:16 EDT
In reply to comment 17, yes, I've prepared a "neutral" test that can be used 
for confirmation and added for regression tests. I do not know exactly how to 
"get into" your test suite (that is, I'm sure you have system, or something) but
will propose these patches as your starting point. Hopefullly its close and you
won't have to change much to put it where you'd really like it. 

I'll attach patches for org.eclipse.ui.tests. 
2 new classes, a change to the plugin.xml, and even hooked into a "suite". 
A second attachement will contain a zip for the the data files, to be put in the
data folder. 
Comment 22 David Williams CLA Friend 2005-09-19 02:49:49 EDT
Created attachment 27247 [details]
two new classes, addition to plugin.xml, and "suite" addition. 

For org.eclipse.ui.tests
OpenNavigatorFolderTest -- main test class
ContentDescriberForTestsOnly -- a time consuming content describer
the patch to plugin.xml is to define a contentType for 
files with an extension of 'htmltestonly'
Comment 23 David Williams CLA Friend 2005-09-19 02:56:51 EDT
Created attachment 27248 [details]
2500 "neutral" files with an extension of htmltestonly 

to be left as a zip file, and placed in 
org.eclipse.ui.tests/data
The performance test "unzips" it into a project during the test, then
that project "expanded" in the navigator. (only expansion is timed, not the 
unzipping ... which takes for ever :)
Comment 24 Kim Horne CLA Friend 2005-09-22 10:23:59 EDT
David:  According to the Javadoc, a CoreException can only occur in that case if the project does not exist 
or the project is not open.  In either of these cases we wouldn't reach the code that would generate an 
icon for the file in the project so it's safe to ignore IMO.

Patch submitted to head.  I will now investigate backporting the test to 3.0 and 3.1 performance streams.
Comment 25 Kim Horne CLA Friend 2005-09-22 12:12:14 EDT
Test has been ported everywhere + kitchen sink.
Comment 26 Kim Horne CLA Friend 2005-09-26 11:57:26 EDT
Using the supplied content type zip I was able to confirm that the expand time is acceptable in 
M20050923-1430
Comment 27 Valentin Baciu CLA Friend 2006-05-11 14:04:37 EDT
People are starting to file bugs https://bugs.eclipse.org/bugs/show_bug.cgi?id=139756 about files showing up with the wrong icons in the navigator.

Any timeframe for the solution proposed in https://bugs.eclipse.org/bugs/show_bug.cgi?id=107121#c12 ?
Comment 28 Karice McIntyre CLA Friend 2006-05-11 14:14:09 EDT
Valentin,  you should open a new bug against Platform-UI for this as it is a separate issue from the original problem reported in this bug.