Bug 312959 - [Import/Export] importing file from big disk hangs UI
Summary: [Import/Export] importing file from big disk hangs UI
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.6   Edit
Hardware: All All
: P3 critical (vote)
Target Milestone: 3.7 M1   Edit
Assignee: Serge Beauchamp CLA
QA Contact: Prakash Rangaraj CLA
URL:
Whiteboard:
Keywords:
: 316322 320099 (view as bug list)
Depends on:
Blocks: 321505
  Show dependency tree
 
Reported: 2010-05-14 14:38 EDT by Grant Gayed CLA
Modified: 2010-08-04 18:06 EDT (History)
12 users (show)

See Also:
serge: review? (prakash)


Attachments
kill -3 dump from Linux-PPC (1.24 MB, text/plain)
2010-05-14 14:38 EDT, Grant Gayed CLA
no flags Details
Fix (5.06 KB, patch)
2010-08-02 07:02 EDT, Serge Beauchamp CLA
no flags Details | Diff
Fix (5.69 KB, patch)
2010-08-02 07:04 EDT, Serge Beauchamp CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Grant Gayed CLA 2010-05-14 14:38:56 EDT
Created attachment 168578 [details]
kill -3 dump from Linux-PPC

- I20100513-1500
- observed on Linux-x86, Linux-PPC and Solaris-x86
- problem doesn't happen in 3.6M6, it happens in 3.6RC1 candidate, will try 3.6M7 shortly

steps:
- File > Import...
- select General-File System, press Next
- my home directory is mounted, I select it
- choose any file in the right-side list, press Finish, hangs

Linux-PPC and Solaris-x86 gave the stack below in response to kill -3 (full dump file is attached).  Linux-x86 gave a slightly different stack, but the result is the same.

3XMTHREADINFO      "main" (TID:0x10053900, sys_thread_t:0x10027E48, state:CW, native ID:0x00004FE8) prio=6
4XESTACKTRACE          at java/io/UnixFileSystem.getBooleanAttributes0(Native Method)
4XESTACKTRACE          at java/io/UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:258(Compiled Code))
4XESTACKTRACE          at java/io/File.isDirectory(File.java:752(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/filesystem/FileSystemStructureProvider.isRecursiveLink(FileSystemStructureProvider.java:63(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/filesystem/FileSystemStructureProvider.getChildren(FileSystemStructureProvider.java:47(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.populate(MinimizedFileSystemElement.java:76(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/MinimizedFileSystemElement.getFiles(MinimizedFileSystemElement.java:44(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1$13.getChildren(WizardFileSystemResourceImportPage1.java:665(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/model/BaseWorkbenchContentProvider.getElements(BaseWorkbenchContentProvider.java:73(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:411(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.findAllSelectedListElements(ResourceTreeAndListGroup.java:424)
4XESTACKTRACE          at org/eclipse/ui/internal/ide/dialogs/ResourceTreeAndListGroup.getAllListItems(ResourceTreeAndListGroup.java:548)
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.allItemsAreChecked(WizardFileSystemResourceImportPage1.java:1210)
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.importResources(WizardFileSystemResourceImportPage1.java:833)
4XESTACKTRACE          at org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.finish(WizardFileSystemResourceImportPage1.java:646)
4XESTACKTRACE          at org/eclipse/ui/wizards/datatransfer/FileSystemImportWizard.performFinish(FileSystemImportWizard.java:101)
4XESTACKTRACE          at org/eclipse/jface/wizard/WizardDialog.finishPressed(WizardDialog.java:811)
4XESTACKTRACE          at org/eclipse/jface/wizard/WizardDialog.buttonPressed(WizardDialog.java:430)
4XESTACKTRACE          at org/eclipse/jface/dialogs/Dialog$2.widgetSelected(Dialog.java:624)
4XESTACKTRACE          at org/eclipse/swt/widgets/TypedListener.handleEvent(TypedListener.java:234(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/EventTable.sendEvent(EventTable.java:84(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Widget.sendEvent(Widget.java:1234(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Display.runDeferredEvents(Display.java:3540(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Display.readAndDispatch(Display.java:3159(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/window/Window.runEventLoop(Window.java:825)
4XESTACKTRACE          at org/eclipse/jface/window/Window.open(Window.java:801)
4XESTACKTRACE          at org/eclipse/ui/internal/handlers/WizardHandler$Import.executeHandler(WizardHandler.java:147)
4XESTACKTRACE          at org/eclipse/ui/internal/handlers/WizardHandler.execute(WizardHandler.java:274)
4XESTACKTRACE          at org/eclipse/ui/internal/handlers/HandlerProxy.execute(HandlerProxy.java:293)
4XESTACKTRACE          at org/eclipse/core/commands/Command.executeWithChecks(Command.java:476)
4XESTACKTRACE          at org/eclipse/core/commands/ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
4XESTACKTRACE          at org/eclipse/ui/internal/handlers/HandlerService.executeCommand(HandlerService.java:169)
4XESTACKTRACE          at org/eclipse/ui/internal/handlers/SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
4XESTACKTRACE          at org/eclipse/ui/internal/actions/CommandAction.runWithEvent(CommandAction.java:157)
4XESTACKTRACE          at org/eclipse/jface/action/ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
4XESTACKTRACE          at org/eclipse/jface/action/ActionContributionItem.access$2(ActionContributionItem.java:501)
4XESTACKTRACE          at org/eclipse/jface/action/ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
4XESTACKTRACE          at org/eclipse/swt/widgets/EventTable.sendEvent(EventTable.java:84(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Widget.sendEvent(Widget.java:1234(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Display.runDeferredEvents(Display.java:3540(Compiled Code))
4XESTACKTRACE          at org/eclipse/swt/widgets/Display.readAndDispatch(Display.java:3159(Compiled Code))
4XESTACKTRACE          at org/eclipse/ui/internal/Workbench.runEventLoop(Workbench.java:2624)
4XESTACKTRACE          at org/eclipse/ui/internal/Workbench.runUI(Workbench.java:2588)
4XESTACKTRACE          at org/eclipse/ui/internal/Workbench.access$4(Workbench.java:2422)
4XESTACKTRACE          at org/eclipse/ui/internal/Workbench$7.run(Workbench.java:670)
4XESTACKTRACE          at org/eclipse/core/databinding/observable/Realm.runWithDefault(Realm.java:332)
4XESTACKTRACE          at org/eclipse/ui/internal/Workbench.createAndRunWorkbench(Workbench.java:663)
4XESTACKTRACE          at org/eclipse/ui/PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
4XESTACKTRACE          at org/eclipse/ui/internal/ide/application/IDEApplication.start(IDEApplication.java:115)
4XESTACKTRACE          at org/eclipse/equinox/internal/app/EclipseAppHandle.run(EclipseAppHandle.java:196)
4XESTACKTRACE          at org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
4XESTACKTRACE          at org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.start(EclipseAppLauncher.java:79)
4XESTACKTRACE          at org/eclipse/core/runtime/adaptor/EclipseStarter.run(EclipseStarter.java:369)
4XESTACKTRACE          at org/eclipse/core/runtime/adaptor/EclipseStarter.run(EclipseStarter.java:179)
4XESTACKTRACE          at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
4XESTACKTRACE          at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
4XESTACKTRACE          at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
4XESTACKTRACE          at java/lang/reflect/Method.invoke(Method.java:618)
4XESTACKTRACE          at org/eclipse/equinox/launcher/Main.invokeFramework(Main.java:619)
4XESTACKTRACE          at org/eclipse/equinox/launcher/Main.basicRun(Main.java:574)
4XESTACKTRACE          at org/eclipse/equinox/launcher/Main.run(Main.java:1407)
4XESTACKTRACE          at org/eclipse/equinox/launcher/Main.main(Main.java:1383)
3XMTHREADINFO      "JIT Compilation Thread" (TID:0x10053D00, sys_thread_t:0x10028368, state:CW, native ID:0x00004FEA) prio=11
3XMTHREADINFO      "Signal Dispatcher" (TID:0x10054100, sys_thread_t:0x10028888, state:R, native ID:0x00004FEC) prio=5
4XESTACKTRACE          at com/ibm/misc/SignalDispatcher.waitForSignal(Native Method)
4XESTACKTRACE          at com/ibm/misc/SignalDispatcher.run(SignalDispatcher.java:84)
3XMTHREADINFO      "Gc Slave Thread" (TID:0x1019EE00, sys_thread_t:0xDE55A648, state:CW, native ID:0x00004FEF) prio=5
3XMTHREADINFO      "Gc Slave Thread" (TID:0x1019F200, sys_thread_t:0xDE55A8D8, state:CW, native ID:0x00004FF0) prio=5
3XMTHREADINFO      "Gc Slave Thread" (TID:0x1019F600, sys_thread_t:0xDE55AB68, state:CW, native ID:0x00004FF1) prio=5
3XMTHREADINFO      "Java indexing" (TID:0xDDEDC300, sys_thread_t:0xDE55ADF8, state:CW, native ID:0x00005001) prio=4
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199)
4XESTACKTRACE          at org/eclipse/jdt/internal/core/search/processing/JobManager.run(JobManager.java:381)
4XESTACKTRACE          at java/lang/Thread.run(Thread.java:810)
3XMTHREADINFO      "Framework Event Dispatcher" (TID:0xDDEDC700, sys_thread_t:0xDE55B088, state:CW, native ID:0x00004FF3) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.getNextEvent(EventManager.java:397(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.run(EventManager.java:333)
3XMTHREADINFO      "Start Level Event Dispatcher" (TID:0xDDEDCB00, sys_thread_t:0xDDEF8598, state:CW, native ID:0x00004FF5) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.getNextEvent(EventManager.java:397(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.run(EventManager.java:333)
3XMTHREADINFO      "Bundle File Closer" (TID:0xDDCA5D00, sys_thread_t:0xDDEF8828, state:CW, native ID:0x00004FF6) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.getNextEvent(EventManager.java:397(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.run(EventManager.java:333)
3XMTHREADINFO      "Finalizer thread" (TID:0xDDCA6100, sys_thread_t:0xDDEF8AB8, state:CW, native ID:0x00004FF7) prio=5
3XMTHREADINFO      "Worker-JM" (TID:0xDDCA6500, sys_thread_t:0xDDEF8D48, state:CW, native ID:0x00004FFB) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/InternalWorker.run(InternalWorker.java:58)
3XMTHREADINFO      "[Timer] - Main Queue Handler" (TID:0x10361900, sys_thread_t:0xDDEF8FD8, state:CW, native ID:0x00004FFA) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/equinox/internal/util/impl/tpt/timer/TimerImpl.run(TimerImpl.java:141)
4XESTACKTRACE          at java/lang/Thread.run(Thread.java:810)
3XMTHREADINFO      "Worker-28" (TID:0x10361D00, sys_thread_t:0x105AB3C0, state:CW, native ID:0x0000517E) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/WorkerPool.sleep(WorkerPool.java:180(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:217(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:50(Compiled Code))
3XMTHREADINFO      "Provisioning Event Dispatcher" (TID:0x10362100, sys_thread_t:0x105AB130, state:CW, native ID:0x00004FFD) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.getNextEvent(EventManager.java:397(Compiled Code))
4XESTACKTRACE          at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.run(EventManager.java:333)
3XMTHREADINFO      "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0xDCB11A00, sys_thread_t:0x105ABE00, state:CW, native ID:0x000050B6) prio=1
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/text/reconciler/AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
3XMTHREADINFO      "Connect thread ottcvs1 session" (TID:0xDCB11E00, sys_thread_t:0x105ABB70, state:R, native ID:0x0000503E) prio=6
4XESTACKTRACE          at java/net/SocketInputStream.socketRead0(Native Method)
4XESTACKTRACE          at java/net/SocketInputStream.read(SocketInputStream.java:155(Compiled Code))
4XESTACKTRACE          at com/jcraft/jsch/IO.getByte(IO.java:82(Compiled Code))
4XESTACKTRACE          at com/jcraft/jsch/Session.read(Session.java:808(Compiled Code))
4XESTACKTRACE          at com/jcraft/jsch/Session.run(Session.java:1193)
4XESTACKTRACE          at java/lang/Thread.run(Thread.java:810)
3XMTHREADINFO      "[ThreadPool Manager] - Idle Thread" (TID:0xDCB12200, sys_thread_t:0x105AB8E0, state:CW, native ID:0x00005000) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:199)
4XESTACKTRACE          at org/eclipse/equinox/internal/util/impl/tpt/threadpool/Executor.run(Executor.java:106)
3XMTHREADINFO      "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0xDB15BF00, sys_thread_t:0x1041ED40, state:CW, native ID:0x00005057) prio=1
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/text/reconciler/AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
3XMTHREADINFO      "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0xDB15C700, sys_thread_t:0xDDEF9268, state:CW, native ID:0x00005120) prio=1
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/text/reconciler/AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
3XMTHREADINFO      "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0xDAD2BB00, sys_thread_t:0x1041E820, state:CW, native ID:0x00005123) prio=1
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/text/reconciler/AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
3XMTHREADINFO      "Worker-24" (TID:0xDAD2BF00, sys_thread_t:0x1041E070, state:CW, native ID:0x000050B8) prio=5
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/WorkerPool.sleep(WorkerPool.java:180(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:217(Compiled Code))
4XESTACKTRACE          at org/eclipse/core/internal/jobs/Worker.run(Worker.java:50(Compiled Code))
3XMTHREADINFO      "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0xD9079500, sys_thread_t:0x1041E300, state:CW, native ID:0x00005126) prio=1
4XESTACKTRACE          at java/lang/Object.wait(Native Method)
4XESTACKTRACE          at java/lang/Object.wait(Object.java:231(Compiled Code))
4XESTACKTRACE          at org/eclipse/jface/text/reconciler/AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
Comment 1 Grant Gayed CLA 2010-05-14 15:01:54 EDT
It hangs for me in 3.6M7 as well (tried Linux-x86).

I should mention that I've specified mounted drive because the hang
doesn't happen if I import from /opt (so assuming it works for local directories in general).
Comment 2 Paul Webster CLA 2010-05-14 15:06:01 EDT
FileSystemStructureProvider was added back early in M7
PW
Comment 3 Prakash Rangaraj CLA 2010-05-17 00:23:44 EDT
To enable the import of recursively linked directories, we need to perform this check.

Grant,
   The directory & its sub-directories  you are trying to import has a lot of entries? From the stack trace, it seems that while it tries to find the recursive links, you killed the app. Does Eclipse completes the operation at all after few mins?
Comment 4 Grant Gayed CLA 2010-05-17 10:09:35 EDT
The directory that I'm trying to import from has a lot of files, folders, etc.

I tried the scenario again and left it alone this time.  When I came back to it a while later it had run out of heap space.
Comment 5 Dani Megert CLA 2010-07-19 09:25:34 EDT
*** Bug 320099 has been marked as a duplicate of this bug. ***
Comment 6 Gary Karasiuk CLA 2010-07-19 11:41:21 EDT
(In reply to comment #1)
> I should mention that I've specified mounted drive because the hang
> doesn't happen if I import from /opt (so assuming it works for local
> directories in general).

I don't think it matters if it is local or remote, I think what matters is how many files are reached from that location. 

In my case, searching from d:\ hangs, but searching from d:\some-dir\ doesn't.
Comment 7 Prakash Rangaraj CLA 2010-07-26 05:13:50 EDT
It looks like a regression due to Bug#302702. The allItemsAreChecked() method is introduced in the fix for that bug, which calculates the checked state for all the elements starting from the root. The calculation is done for the entire tree, even when only one file is checked. This is a massive calculation if the selected directory contains numerous files.

Serge,
    Can this calculation be avoided or any other workaround available?
Comment 8 Serge Beauchamp CLA 2010-07-27 04:44:11 EDT
(In reply to comment #7)
> It looks like a regression due to Bug#302702. The allItemsAreChecked() method
> is introduced in the fix for that bug, which calculates the checked state for
> all the elements starting from the root. The calculation is done for the entire
> tree, even when only one file is checked. This is a massive calculation if the
> selected directory contains numerous files.
> 
> Serge,
>     Can this calculation be avoided or any other workaround available?

I'm looking in a workaround that would be able to see if only partial items are selected in the tree and list view without having to iterate all items.
Comment 9 Prakash Rangaraj CLA 2010-07-30 12:14:12 EDT
*** Bug 316322 has been marked as a duplicate of this bug. ***
Comment 10 Serge Beauchamp CLA 2010-08-02 07:02:02 EDT
Created attachment 175701 [details]
Fix

Fix
Comment 11 Serge Beauchamp CLA 2010-08-02 07:04:15 EDT
Created attachment 175702 [details]
Fix

(minor changes)
Comment 12 Serge Beauchamp CLA 2010-08-02 07:07:04 EDT
Szymon, can you review this fix, and I'll commit to the mainline.

For the 3.6.1 branch, should I create a branch too, or the UI guys will do it?

Thanks
Comment 13 Serge Beauchamp CLA 2010-08-02 07:11:54 EDT
Prakash, can you review this fix please?
Comment 14 Serge Beauchamp CLA 2010-08-02 07:19:10 EDT
Now fixed on head.
Comment 15 Szymon Brandys CLA 2010-08-02 07:32:58 EDT
We should leave the bug open till it is fixed in 3.6.1, or target this one for M1 and open a 3.6.1 bug to backport the fix.
Comment 16 Remy Suen CLA 2010-08-02 07:35:42 EDT
(In reply to comment #15)
> We should leave the bug open till it is fixed in 3.6.1, or target this one for
> M1 and open a 3.6.1 bug to backport the fix.

I suggest the latter. It's easier for bookkeeping purposes and the verification passes will be done on two separate occasions anyway.
Comment 17 Serge Beauchamp CLA 2010-08-02 09:05:17 EDT
reopening - adding Prakash review request
Comment 18 Szymon Brandys CLA 2010-08-02 09:23:03 EDT
The fix was committed to HEAD. A separate bug was raised to backport it to 3.6.1.
Comment 19 Dani Megert CLA 2010-08-02 10:32:43 EDT
>A separate bug was raised to backport it to 3.6.1.
See bug 321505.
Comment 20 Serge Beauchamp CLA 2010-08-03 09:03:57 EDT
Fix on head.
Comment 21 Remy Suen CLA 2010-08-04 07:29:02 EDT
Both bug 312959 (this one) and bug 321505 (the other one) is targeted for 3.6.1.

I'm assuming this one is the one for 3.7 (based on comment 18, comment 19, and comment 20), please adjust the target milestone to 3.7M1 or 3.7M2, whichever is appropriate, so that it can be picked up during the verification pass.
Comment 22 Szymon Brandys CLA 2010-08-04 18:06:26 EDT
(In reply to comment #21)
> I'm assuming this one is the one for 3.7 (based on comment 18, comment 19, and
> comment 20), please adjust the target milestone to 3.7M1 or 3.7M2, whichever is
> appropriate, so that it can be picked up during the verification pass.

This one was targeted for 3.7M1. Serge accidentally changed the target to 3.6.1. I'm fixing it now.