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

Summary: CREATE_FOLDER_IGNORE_LIST commands within Refresh Recursively intensive and unnecessary
Product: obsolete Reporter: Antonin Nebuzelsky <anebuzelsky>
Component: vcscoreAssignee: issues@obsolete <issues>
Status: CLOSED FIXED    
Severity: blocker CC: issues
Priority: P2 Keywords: PERFORMANCE, REGRESSION
Version: 4.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:

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.