This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 52683 - CREATE_FOLDER_IGNORE_LIST commands within Refresh Recursively intensive and unnecessary
Summary: CREATE_FOLDER_IGNORE_LIST commands within Refresh Recursively intensive and u...
Status: CLOSED FIXED
Alias: None
Product: obsolete
Classification: Unclassified
Component: vcscore (show other bugs)
Version: 4.x
Hardware: All All
: P2 blocker (vote)
Assignee: issues@obsolete
URL:
Keywords: PERFORMANCE, REGRESSION
Depends on:
Blocks:
 
Reported: 2004-12-20 16:09 UTC by Antonin Nebuzelsky
Modified: 2006-03-24 12:59 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Antonin Nebuzelsky 2004-12-20 16:09:43 UTC
The new VCS cache implementation changes behavior
of Refresh Recursively command. After the refresh
of statuses itself finishes (invoking CVS STATUS
commands), it issues tons of
CREATE_FOLDER_IGNORE_LIST commands. On my testing
machine, the refreshing took less than 10 minutes
but the subsequent CREATE_FOLDER_IGNORE_LIST
commands took around an hour, making the IDE
unusable during that time. Furthermore discussion
with development team revealed that the output of
CREATE_FOLDER_IGNORE_LIST commands is thrown away
in the case of CVS versioning system.
Comment 1 _ pkuzel 2004-12-20 17:49:47 UTC
The ignored status computation can:
  - be postponed to getStatus(), 
  - bypass command infrastructure or
  - let on cache clients

Postpone to actual getStatus() call is rather trivial. But it's wrong
because getStatus() can be called from AWT. 

Bypass is trivial in CVS case, just let CvsFileAttributeProvider
provide additional IgnoreList.ID attribute type and let cache handle
it. In other cases there is ignored status stored in local database.

All clients modification can be surprisingly easy because many of them
do not use getStatus() but IgnoreList.isIgnored(). And it's wrong.
They possibly compute already known information.
Comment 2 _ pkuzel 2004-12-21 11:16:26 UTC
<--  CvsCreateFolderIgnoreList.java
new revision: 1.2.22.2; previous revision: 1.2.22.1
<--  CvsCreateInitialIgnoreList.java
new revision: 1.1.206.4; previous revision: 1.1.206.3
<--  CvsFileAttributeProvider.java
new revision: 1.1.2.35; previous revision: 1.1.2.34
<--  IgnoreList.java
new revision: 1.2.2.9; previous revision: 1.2.2.8

FIXED generic framework bypass for CVS ignore list implemented.
Comment 3 Antonin Nebuzelsky 2004-12-21 14:03:23 UTC
Verified. Now the behavior for CVS is similar to the original trunk
behavior.