We are facing significant regression between the start time of IDE without and with open project. In our current
understanding, the major slowdown is caused by a lot of unneeded and unrelated classes being loaded uselessly.
We have a feeling that it is not appropriate to initialize all J2EE servers when one uses plain JavaSE project. I
guess the problem is somewhere in these lines:
Can this be delayed? Used only with Web projects? If not, then OK, let leave the fix for post 6.5, but please spend
some time investigating this problem now. Thanks.
Looks like org.netbeans.modules.java.source.classpath.GlobalSourcePath is querying all registered
SourceForBinaryQueries. As server plugins can provide sources to the classes they publish the j2eeserver module
registers J2eePlatformSourceForBinaryQuery that queries the registered instances.
Right now I can't find any safe solution for 6.5 as SourceForBinaryQuery does not pass any project related information
As there is no project information available in query implementation it is impossible (in the current state) to avoid
server instance initialization. The problem was not introduced in 6.5. Lowering to P3.
I doubt that this is a regression, any query to the SFBQ which is not handled by some SQBQImpl with higher priority causes initialization of servers. The j2ee
query needs to know the location of binaries to either return null or SQBQ.Result. In the future the j2ee SFBQ can do some caching of binaries but it may cause
problems when the server changes outside the IDE.
Comment 8Alexander Kouznetsov
2008-10-02 14:42:55 UTC
Classes from issue 149563:
Comment 15Alexander Kouznetsov
2008-10-14 14:17:03 UTC
The following three classes shouldn't also be loaded:
Comment from jtulach:
imho a bug in j2eeserver.
Comment 16Alexander Kouznetsov
2008-10-14 14:19:51 UTC