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 251275 - Too many classes loaded on start whitelist test fails
Summary: Too many classes loaded on start whitelist test fails
Status: RESOLVED WONTFIX
Alias: None
Product: ide
Classification: Unclassified
Component: Performance (show other bugs)
Version: 8.1
Hardware: PC Mac OS X
: P2 normal (vote)
Assignee: Jaroslav Tulach
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-19 07:21 UTC by Jaroslav Tulach
Modified: 2015-07-26 10:16 UTC (History)
2 users (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 Jaroslav Tulach 2015-03-19 07:21:25 UTC
The ergonomics build is currently failing because the limit on unwanted classes loaded on start is exceeded. See for example:

http://deadlock.netbeans.org/job/ergonomics/5613/testReport/org.netbeans.test.ide/WhitelistTest/testWhitelist3/

I am not sure if the performance team want to track these classes and at what cost, but I have pending integrations in ergonomics repository and I want to get them through - e.g. I made this issue P1.

In case you don't want to invest in making the test passing, I can disable it from the ergonomics builder - just assign the bug back to me.
Comment 1 Jaroslav Tulach 2015-03-19 07:25:33 UTC
Here is the list of currently violating classes. Many of them seem to be part of the infrastructure and were probably introduced while splitting into headless only modules by Sváťa, so CCing him.

But of course in addition to that, there is great amount of classes that in my opinion should not be loaded on the start at all.

 Whitelist violations:
    com.sun.tools.javac.comp.DeferredAttr$UnenterScanner
    org.netbeans.api.editor.document.AtomicLockListener
    org.netbeans.api.editor.document.EditorMimeTypes
    org.netbeans.api.editor.mimelookup.MimePath$AccessorImpl
    org.netbeans.api.html.lexer.HtmlLexerPlugin
    org.netbeans.api.java.classpath.ClassPath$Flag
    org.netbeans.api.server.properties.InstancePropertiesManager
    org.netbeans.core.startup.base.LayerFactory
    org.netbeans.core.startup.base.LayerFactory$Provider
    org.netbeans.core.startup.impl.BinaryLayerFactoryProvider
    org.netbeans.debugger.registry.ContextAwareServicePath
    org.netbeans.modules.autoupdate.cli.ModuleOptions
    org.netbeans.modules.cloud.amazon.AmazonInstance
    org.netbeans.modules.cloud.amazon.AmazonInstanceManager
    org.netbeans.modules.cloud.amazon.serverplugin.AmazonJ2EEServerInstanceProvider
    org.netbeans.modules.cloud.amazon.serverplugin.AmazonOptionalDeploymentManagerFactory
    org.netbeans.modules.cnd.asm.core.editor.AsmEditorKit
    org.netbeans.modules.cnd.editor.cplusplus.HKit
    org.netbeans.modules.cnd.editor.fortran.FKit
    org.netbeans.modules.cnd.indexing.impl.TextIndexStorageManager$Startup
    org.netbeans.modules.cnd.makeproject.MakeProjectClassPathProvider
    org.netbeans.modules.cnd.makeproject.MakeProjectFileOwnerQuery$HighPriorityProvider
    org.netbeans.modules.cnd.makeproject.MakeProjectFileOwnerQuery$LowPriorityProvider
    org.netbeans.modules.cnd.modelimpl.Installer$Start
    org.netbeans.modules.cnd.modelimpl.platform.CndIndexer$Factory
    org.netbeans.modules.cnd.repository.api.Repository
    org.netbeans.modules.cnd.repository.api.RepositoryListener
    org.netbeans.modules.cnd.repository.api.RepositoryListenersManager
    org.netbeans.modules.cnd.repository.impl.UninitializedRepositoryImpl
    org.netbeans.modules.cnd.repository.impl.spi.RepositoryImplementation
    org.netbeans.modules.cnd.toolchain.Installer
    org.netbeans.modules.cnd.utils.CndPathUtilities
    org.netbeans.modules.csl.editor.semantic.HighlightsLayerFactoryImpl
    org.netbeans.modules.debugger.jpda.projectsui.HighlightsLayerFactoryImpl
    org.netbeans.modules.debugger.jpda.projectsui.MainProjectManager
    org.netbeans.modules.debugger.jpda.projectsui.StepIntoActionProvider
    org.netbeans.modules.debugger.jpda.projectsui.StepIntoActionProvider$Listener
    org.netbeans.modules.debugger.ui.actions.DebugMainProjectAction$BuildExecutionSupportChangeSupport
    org.netbeans.modules.debugger.ui.actions.DebugMainProjectAction$DebugHistorySupport
    org.netbeans.modules.editor.mimelookup.APIAccessor
    org.netbeans.modules.editor.mimelookup.MimeLookupCacheSPI
    org.netbeans.modules.editor.mimelookup.MimePathLookup$1R
    org.netbeans.modules.editor.mimelookup.SharedMimeLookupCache
    org.netbeans.modules.editor.settings.storage.ApiAccessor
    org.netbeans.modules.editor.settings.storage.EditorLocatorFactory
    org.netbeans.modules.editor.settings.storage.EditorLocatorFactory$FontsColorsLocator
    org.netbeans.modules.editor.settings.storage.EditorLocatorFactory$LegacyTextBaseLocator
    org.netbeans.modules.editor.settings.storage.EditorSettingsImpl$KeymapProfileTracker
    org.netbeans.modules.editor.settings.storage.NbUtils$NoNetworkAccessEntityCatalog
    org.netbeans.modules.editor.settings.storage.SettingsType$LocatorFactory
    org.netbeans.modules.editor.settings.storage.StorageImpl$StorageCache
    org.netbeans.modules.editor.settings.storage.StorageImpl$StorageCacheImpl
    org.netbeans.modules.editor.settings.storage.preferences.PreferencesImpl$PreferencesFactory
    org.netbeans.modules.glassfish.common.GlassFishLogger
    org.netbeans.modules.glassfish.common.GlassFishSettings
    org.netbeans.modules.glassfish.common.utils.ServerUtils
    org.netbeans.modules.glassfish.tooling.GlassFishToolsConfig
    org.netbeans.modules.glassfish.tooling.logging.Logger
    org.netbeans.modules.groovy.gsp.editor.GspKit
    org.netbeans.modules.groovy.support.api.GroovyExtender
    org.netbeans.modules.groovy.support.spi.GroovyExtenderImplementation
    org.netbeans.modules.html.angular.index.AngularJsIndexer$Factory
    org.netbeans.modules.html.editor.api.HtmlKit
    org.netbeans.modules.html.editor.api.gsf.HtmlExtension
    org.netbeans.modules.html.editor.spi.embedding.JsEmbeddingProviderPlugin
    org.netbeans.modules.html.palette.api.HtmlPaletteFolderProvider
    org.netbeans.modules.hudson.impl.HudsonRemoteFileSystem$Mapper
    org.netbeans.modules.java.classpath.DefaultGlobalPathRegistryImplementation
    org.netbeans.modules.java.classpath.SPIAccessor
    org.netbeans.modules.java.j2seplatform.platformdefinition.ForwardingJavaPlatform
    org.netbeans.modules.java.j2seplatform.platformdefinition.J2SEPlatformDefaultSourcesImpl
    org.netbeans.modules.java.j2seplatform.spi.J2SEPlatformDefaultSources
    org.netbeans.modules.java.preprocessorbridge.spi.ImportProcessor
    org.netbeans.modules.javafx2.platform.JavaFxDefaultSourcesImpl
    org.netbeans.modules.javafx2.platform.api.JavaFXPlatformUtils
    org.netbeans.modules.javafx2.project.JFXPlatformUpdater
    org.netbeans.modules.javafx2.project.JFXProjectProblems
    org.netbeans.modules.javafx2.project.JFXProjectProperties
    org.netbeans.modules.javafx2.project.JFXProjectUtils
    org.netbeans.modules.javascript2.debug.sources.SourceFS
    org.netbeans.modules.javascript2.debug.sources.SourceURLMapper
    org.netbeans.modules.javascript2.editor.classpath.ClassPathProviderImpl$StubsBundle
    org.netbeans.modules.javascript2.editor.index.JsIndexer$Factory
    org.netbeans.modules.javascript2.knockout.index.KnockoutIndexer$Factory
    org.netbeans.modules.javascript2.requirejs.editor.index.RequireJsIndexer$Factory
    org.netbeans.modules.javawebstart.JWSProjectOpenHook$PlatformListener
    org.netbeans.modules.maven.embedder.EmbedderFactory
    org.netbeans.modules.mylyn.util.internal.ModuleLifecycleManager
    org.netbeans.modules.openide.filesystems.SharedClassObjectFactory
    org.netbeans.modules.parsing.impl.indexing.IndexBinaryWorkPool
    org.netbeans.modules.parsing.impl.indexing.IndexBinaryWorkPool$ConcurrentStrategy
    org.netbeans.modules.parsing.impl.indexing.IndexBinaryWorkPool$Function
    org.netbeans.modules.parsing.impl.indexing.IndexBinaryWorkPool$Strategy
    org.netbeans.modules.parsing.impl.indexing.IndexBinaryWorkPool$Task
    org.netbeans.modules.parsing.impl.indexing.LogContext$RootInfo
    org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$IncompleteStatus
    org.netbeans.modules.parsing.impl.indexing.URLCache
    org.netbeans.modules.parsing.impl.indexing.URLCache$CleanReference
    org.netbeans.modules.parsing.impl.indexing.implspi.ContextProvider
    org.netbeans.modules.parsing.impl.indexing.implspi.ContextProvider$DefaultContextProvider
    org.netbeans.modules.parsing.lucene.LuceneIndex$DirCache$IndexWriterReference
    org.netbeans.modules.parsing.lucene.RecordOwnerLockFactory
    org.netbeans.modules.parsing.lucene.SupportAccessor
    org.netbeans.modules.parsing.lucene.support.Index$WithTermFrequencies
    org.netbeans.modules.parsing.lucene.support.IndexManager$SupportAccessorImpl
    org.netbeans.modules.php.editor.csl.PHPLanguage
    org.netbeans.modules.php.latte.csl.LatteLanguage
    org.netbeans.modules.php.smarty.editor.TplKit
    org.netbeans.modules.php.smarty.editor.gsf.TplLanguage
    org.netbeans.modules.php.twig.editor.TwigEditorKit
    org.netbeans.modules.php.twig.editor.gsf.TwigLanguage
    org.netbeans.modules.refactoring.java.ui.HighlightsLayerFactory
    org.netbeans.modules.subversion.remote.SvnMetadataFolderLoader
    org.netbeans.modules.testng.ui.wizards.TestNGEntityResolver
    org.netbeans.modules.web.beans.CdiProjectOpenHook
    org.netbeans.modules.web.beans.CdiUtil
    org.netbeans.modules.web.browser.api.PageInspector
    org.netbeans.modules.web.clientproject.browser.ActiveBrowserAction
    org.netbeans.modules.web.clientproject.browser.ActiveBrowserAction$LastActivatedWindowLookup
    org.netbeans.modules.web.core.syntax.JspKit
    org.netbeans.modules.web.inspect.PageInspectorImpl
    org.netbeans.modules.websocket.editor.WebSocketMethodsTaskFactory
    org.netbeans.modules.websvc.rest.editor.AsyncConverterTaskFactory
    org.netbeans.modules.websvc.rest.editor.RestConfigurationEditorAwareTaskFactory
    org.netbeans.modules.whitelist.WhiteListQueryImplementationMerged
    org.netbeans.modules.whitelist.WhiteListQueryMerger
    org.netbeans.modules.xml.catalog.spi.CatalogDescriptor2
    org.netbeans.modules.xml.catalog.spi.CatalogDescriptorBase
    org.netbeans.modules.xml.jaxb.spi.JAXBWizModuleConstants
    org.netbeans.spi.editor.completion.CompletionDocumentation
    org.netbeans.spi.editor.document.DocumentFactory
    org.netbeans.spi.editor.document.EditorMimeTypesImplementation
    org.netbeans.spi.editor.document.UndoableEditWrapper
    org.netbeans.spi.editor.fold.FoldHierarchyMonitor
    org.netbeans.spi.editor.guards.GuardedSectionsFactory
    org.netbeans.spi.editor.typinghooks.CamelCaseInterceptor$Factory
    org.netbeans.spi.server.ServerWizardProvider
    org.netbeans.spi.whitelist.support.WhiteListQueryMergerSupport
    org.openide.filesystems.Repository$LocalProvider
    org.openide.filesystems.spi.CustomInstanceFactory
    Total: 140 violation(s).
Comment 2 Svata Dedic 2015-03-20 15:56:36 UTC
I whitelisted additional classes from core.startup[.base], but I am really not sure whether the MIMELookup infrastructure should load at all.

In particular, the BreadcrumbsController seems to be loaded bcs. WindowManager.getDefault().invokeWhenUIReady fires ... tons of classes are (IMHO) loaded by [not only that] Scheduler.
Comment 3 Quality Engineering 2015-03-22 06:18:10 UTC
Integrated into 'main-silver', will be available in build *201503220001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/01a88c24cb72
User: Svata Dedic <sdedic@netbeans.org>
Log: #251275: whitelisted classes added to startup by module headless splits
Comment 4 Jaroslav Tulach 2015-03-30 06:46:19 UTC
Thanks, Sváťo. The whitelist test passed for last five executions of ergonomics job.
Comment 5 Jaroslav Tulach 2015-07-14 05:41:28 UTC
I can easily remove the test if you don't care about its results.
Comment 6 Jaroslav Tulach 2015-07-26 10:16:06 UTC
I disabled the whitelist test on http://deadlock.netbeans.org/job/ergonomics/