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.
Created attachment 150397 [details] Full output log When running my application based on the NetBeans platform, my MapTopComponent is being created twice (bad), but only one is displayed (good). From stack traces it seems to me, that the first one is created because of the findTopComponent call from an other component (ChatTopComponent), and the second one is created by PersistenceManager, because it was opened when closing the application. I've added "new Throwable().printStackTrace()" to the main window of the MapTopComponent and it has been called three times (full log in the attachment): INFO [com.company.navi.map.MapTopComponent]: Creating MapTopComponent INFO [com.company.navi.MainMap]: Constructing MainMap class instance java.lang.Throwable at com.company.navi.MainMap.<init>(MainMap.java:277) at com.company.navi.map.MapTopComponent.initComponents(MapTopComponent.java:72) at com.company.navi.map.MapTopComponent.<init>(MapTopComponent.java:45) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.netbeans.modules.settings.convertors.XMLSettingsSupport.newInstance(XMLSettingsSupport.java:100) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.defaultInstanceCreate(XMLPropertiesConvertor.java:228) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.read(XMLPropertiesConvertor.java:99) at org.netbeans.modules.settings.InstanceProvider$InstanceCookieImpl.instanceCreate(InstanceProvider.java:317) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentPersistentForID(PersistenceManager.java:571) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentForID(PersistenceManager.java:681) at org.netbeans.core.windows.PersistenceHandler.getTopComponentForID(PersistenceHandler.java:478) at org.netbeans.core.windows.WindowManagerImpl.getTopComponentForID(WindowManagerImpl.java:962) at org.netbeans.core.windows.WindowManagerImpl.findTopComponent(WindowManagerImpl.java:292) at com.company.navi.map.ChatTopComponent.<init>(ChatTopComponent.java:50) ... INFO [com.company.navi.map.MapTopComponent]: Creating MapTopComponent INFO [com.company.navi.MainMap]: Constructing MainMap class instance java.lang.Throwable at com.company.navi.MainMap.<init>(MainMap.java:277) at com.company.navi.map.MapTopComponent.initComponents(MapTopComponent.java:72) at com.company.navi.map.MapTopComponent.<init>(MapTopComponent.java:45) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.netbeans.modules.settings.convertors.XMLSettingsSupport.newInstance(XMLSettingsSupport.java:100) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.defaultInstanceCreate(XMLPropertiesConvertor.java:228) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.read(XMLPropertiesConvertor.java:99) at org.netbeans.modules.settings.InstanceProvider$InstanceCookieImpl.instanceCreate(InstanceProvider.java:317) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentPersistentForID(PersistenceManager.java:571) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentForID(PersistenceManager.java:681) at org.netbeans.core.windows.PersistenceHandler.getTopComponentForID(PersistenceHandler.java:478) at org.netbeans.core.windows.LazyLoader.lazyLoad(LazyLoader.java:138) at org.netbeans.core.windows.PersistenceHandler.initModeFromConfig(PersistenceHandler.java:441) at org.netbeans.core.windows.PersistenceHandler.load(PersistenceHandler.java:204) at org.netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:81) at org.netbeans.core.GuiRunLevel$InitWinSys.run(GuiRunLevel.java:229) ... INFO [com.company.navi.map.MapTopComponent]: Creating MapTopComponent INFO [com.company.navi.MainMap]: Constructing MainMap class instance java.lang.Throwable at com.company.navi.MainMap.<init>(MainMap.java:277) at com.company.navi.map.MapTopComponent.initComponents(MapTopComponent.java:72) at com.company.navi.map.MapTopComponent.<init>(MapTopComponent.java:45) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.netbeans.modules.settings.convertors.XMLSettingsSupport.newInstance(XMLSettingsSupport.java:100) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.defaultInstanceCreate(XMLPropertiesConvertor.java:228) at org.netbeans.modules.settings.convertors.XMLPropertiesConvertor.read(XMLPropertiesConvertor.java:99) at org.netbeans.modules.settings.InstanceProvider$InstanceCookieImpl.instanceCreate(InstanceProvider.java:317) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentPersistentForID(PersistenceManager.java:571) at org.netbeans.core.windows.persistence.PersistenceManager.getTopComponentForID(PersistenceManager.java:681) at org.netbeans.core.windows.PersistenceHandler.getTopComponentForID(PersistenceHandler.java:478) at org.netbeans.core.windows.WindowManagerImpl.getTopComponentForID(WindowManagerImpl.java:962) at org.netbeans.core.windows.model.TopComponentSubModel.getTopComponent(TopComponentSubModel.java:378) at org.netbeans.core.windows.model.TopComponentSubModel.getTopComponents(TopComponentSubModel.java:90) at org.netbeans.core.windows.model.DefaultModeModel.getTopComponents(DefaultModeModel.java:356) at org.netbeans.core.windows.model.DefaultModel.getModeTopComponents(DefaultModel.java:944) at org.netbeans.core.windows.Central.getModeTopComponents(Central.java:1577) at org.netbeans.core.windows.ModeImpl.getTopComponents(ModeImpl.java:220) at org.netbeans.core.windows.model.DefaultModel.isModePermanent(DefaultModel.java:874) at org.netbeans.core.windows.Central.isModePermanent(Central.java:1556) at org.netbeans.core.windows.ModeImpl.isPermanent(ModeImpl.java:422) at org.netbeans.core.windows.PersistenceHandler.getConfigFromMode(PersistenceHandler.java:730) at org.netbeans.core.windows.PersistenceHandler.getConfig(PersistenceHandler.java:626) at org.netbeans.core.windows.PersistenceHandler.save(PersistenceHandler.java:314) at org.netbeans.core.windows.WindowSystemImpl.save(WindowSystemImpl.java:93) at org.netbeans.core.NbLifeExit.doStopInfra(NbLifeExit.java:150) at org.netbeans.core.NbLifeExit.run(NbLifeExit.java:97) at org.netbeans.core.startup.ModuleSystem$2.run(ModuleSystem.java:343) at org.netbeans.ModuleManager.shutDownAsync(ModuleManager.java:1991) at org.netbeans.core.startup.ModuleSystem.shutDownAsync(ModuleSystem.java:349) at org.netbeans.core.NbLifeExit.doExit(NbLifeExit.java:137) at org.netbeans.core.NbLifeExit.run(NbLifeExit.java:94) at org.openide.util.Mutex.doEvent(Mutex.java:1356) at org.openide.util.Mutex.readAccess(Mutex.java:355) at org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:213) at org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:119) at org.netbeans.core.windows.view.ui.MainWindow$9.windowClosing(MainWindow.java:525) at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349) ... @ConvertAsProperties( dtd = "-//com.company.navi.map//Map//EN", autostore = false) @TopComponent.Description( preferredID = "MapTopComponent", iconBase = "com/company/navi/map/maps.png", persistenceType = TopComponent.PERSISTENCE_ALWAYS) @TopComponent.Registration(mode = "editor", openAtStartup = true) @ActionID(category = "Window", id = "com.company.navi.map.MapTopComponent") @ActionReferences({ @ActionReference(path = "Menu/Window", position = 1), @ActionReference(path = "Toolbars/File", position = 1)}) @TopComponent.OpenActionRegistration( displayName = "#CTL_MapAction") public final class MapTopComponent extends TopComponent { private static final Logger logger = Logger.getLogger(MapTopComponent.class.getName()); private MainMap main; public MapTopComponent() { logger.info("Creating MapTopComponent"); initComponents(); setName(NbBundle.getMessage(MapTopComponent.class, "CTL_MapTopComponent")); setToolTipText(NbBundle.getMessage(MapTopComponent.class, "HINT_MapTopComponent")); } private void initComponents() { main = new MainMap(); } public final class ChatTopComponent extends TopComponent { public ChatTopComponent() { TopComponent tc = WindowManager.getDefault().findTopComponent("MapTopComponent"); } }