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 136490 - Subversion classes are loaded on startup
Summary: Subversion classes are loaded on startup
Status: VERIFIED FIXED
Alias: None
Product: versioncontrol
Classification: Unclassified
Component: Subversion (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: issues@versioncontrol
URL:
Keywords: PERFORMANCE, TEST
Depends on:
Blocks:
 
Reported: 2008-06-04 18:09 UTC by Alexander Kouznetsov
Modified: 2008-06-25 14:49 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Proposal for VersioningSystem "proxy" and its registration (3.15 KB, patch)
2008-06-05 10:32 UTC, Jaroslav Tulach
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kouznetsov 2008-06-04 18:09:02 UTC
Performance tests report that the following list of classes is loaded on NetBeans startup. This is considered as startup
regression. Please, don't load these classes.

org.netbeans.modules.subversion.client.cli.Commandline
org.netbeans.modules.subversion.client.cli.CommandlineClient
org.netbeans.modules.subversion.client.cli.CommandlineClient$NotificationHandler
org.netbeans.modules.subversion.client.cli.CommandNotificationListener
org.netbeans.modules.subversion.client.cli.commands.AddCommand
org.netbeans.modules.subversion.client.cli.commands.BlameCommand
org.netbeans.modules.subversion.client.cli.commands.CatCommand
org.netbeans.modules.subversion.client.cli.commands.CheckoutCommand
org.netbeans.modules.subversion.client.cli.commands.CommitCommand
org.netbeans.modules.subversion.client.cli.commands.CopyCommand
org.netbeans.modules.subversion.client.cli.commands.ImportCommand
org.netbeans.modules.subversion.client.cli.commands.InfoCommand
org.netbeans.modules.subversion.client.cli.commands.ListCommand
org.netbeans.modules.subversion.client.cli.commands.ListPropertiesCommand
org.netbeans.modules.subversion.client.cli.commands.LogCommand
org.netbeans.modules.subversion.client.cli.commands.MergeCommand
org.netbeans.modules.subversion.client.cli.commands.MkdirCommand
org.netbeans.modules.subversion.client.cli.commands.MoveCommand
org.netbeans.modules.subversion.client.cli.commands.PropertyDelCommand
org.netbeans.modules.subversion.client.cli.commands.PropertyGetCommand
org.netbeans.modules.subversion.client.cli.commands.PropertySetCommand
org.netbeans.modules.subversion.client.cli.commands.RelocateCommand
org.netbeans.modules.subversion.client.cli.commands.RemoveCommand
org.netbeans.modules.subversion.client.cli.commands.ResolvedCommand
org.netbeans.modules.subversion.client.cli.commands.RevertCommand
org.netbeans.modules.subversion.client.cli.commands.StatusCommand
org.netbeans.modules.subversion.client.cli.commands.SwitchToCommand
org.netbeans.modules.subversion.client.cli.commands.UpdateCommand
org.netbeans.modules.subversion.client.cli.commands.VersionCommand
org.netbeans.modules.subversion.client.cli.SvnCommand
org.netbeans.modules.subversion.client.cli.SvnCommand$Arguments
Comment 1 Tomas Stupka 2008-06-04 18:17:10 UTC
explain please
Comment 2 Alexander Kouznetsov 2008-06-04 18:29:53 UTC
Performance team has tests to watch new classes added to startup. It is one of the ways to prevent startup regressions.
If something inappropriate appears there, we file a bug. Posted to nb-perf, the list can be discussed, but there's no
real process around it.
Comment 3 Tomas Stupka 2008-06-04 19:08:38 UTC
well, and do you also have tests to watch classes which aren't loaded anymore?
To be honest, i'm not 100% sure at this moment, but i guess there should be also some which aren't loaded anymore as we
replaced the relevant implementation from libs.svnClientAdapter. It would be nice to have few more lists in this issue -
something like what was loaded before those classes where added and what's loaded now. A bit more complete picture would
be a good starting point for a discussion.

Comment 4 Jaroslav Tulach 2008-06-05 09:21:36 UTC
I see, we'll work on list of classes not being loaded anymore.

However, I still want to reach a state when no subversion classes are loaded, until there really is .svn folder 
somewhere.
Comment 5 Jaroslav Tulach 2008-06-05 10:32:18 UTC
Created attachment 62402 [details]
Proposal for VersioningSystem "proxy" and its registration
Comment 6 Tomas Stupka 2008-06-05 15:16:14 UTC
1.) doesn't look like this is a regression it's just some another implementation being called on startup -> p3

2.) we will try the suggested patch. thanks for your help

Comment 7 Maros Sandor 2008-06-16 14:55:45 UTC
I propose another solution to this. It does not require any API changes or registration workarounds. Subversion module
will just delay its main component activation until really needed. This way I can reduce number of subversion classes
loaded during startup from 85 to 16. 6 of them are related to the annotation bar (blame.* package) and since I have no
file open in editor I think these classes should no be loaded ... editor team should probably investigate this case.
Anyway, I will soon get to it and implement the fix on subversion side.
Comment 8 Maros Sandor 2008-06-20 10:52:58 UTC
Implemented.
8e8264dab00b
Comment 9 Quality Engineering 2008-06-20 15:50:41 UTC
Integrated into 'main-golden', available in NB_Trunk_Production #271 build
Changeset: http://hg.netbeans.org/main/rev/8e8264dab00b
User: Maros Sandor <msandor@netbeans.org>
Log: #136490: Delay subversion initialization
Comment 10 Alexander Kouznetsov 2008-06-25 14:49:18 UTC
Verified with 20080624