Community
Participate
Working Groups
The generic UI contribution of the Viewers framework can cause UI freezes, as its it loads constraint specifications to decide whether they correspond to the current editor, regardless whether they have been loaded before, and this might result in loading multiple bundles. The culprit here is the ValidationManager#loadConstraintSpecificationsFromExtensions() method. What needs to be done is similar to the actions required for bug 470392: make sure that the classes are not loaded until necessary; deciding whether the contribution needs to be shown should not require loading the patterns themselves. The freeze was reported multiple times using the error reporter service. The original reports are as follows: code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: UI freeze of 1.5s at 17:49:41.099 fingerprint: 30e789ef exception class: org.eclipse.epp.internal.logging.aeri.ui.log.StandInStacktraceProvider$StandInException exception message: Stand-In Stacktrace supplied by the Eclipse Error Reporting number of children: 3 org.eclipse.epp.internal.logging.aeri.ui.log.StandInStacktraceProvider$StandInException: Stand-In Stacktrace supplied by the Eclipse Error Reporting at org.eclipse.ui.internal.monitoring.DefaultUiFreezeEventLogger.log(DefaultUiFreezeEventLogger.java:104) at org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.logEvent(EventLoopMonitorThread.java:785) at org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.run(EventLoopMonitorThread.java:638) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Sample at 17:49:41.449 (+0.350s) Thread 'main' tid=1 (RUNNABLE) fingerprint: 1bc867df exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Class.getDeclaredFields0(null:-2) at java.lang.Class.privateGetDeclaredFields(null:-1) at java.lang.Class.getField0(null:-1) at java.lang.Class.getField(null:-1) at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:274) at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage(EPackageRegistryImpl.java:127) at org.eclipse.incquery.runtime.api.impl.BaseGeneratedEMFPQuery.getClassifierLiteral(BaseGeneratedEMFPQuery.java:45) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$GeneratedPQuery.doGetContainedBodies(StateIsCompositeQuerySpecification.java:111) at org.eclipse.incquery.runtime.matchers.psystem.queries.BasePQuery.ensureInitialized(BasePQuery.java:169) at org.eclipse.incquery.runtime.api.impl.BaseQuerySpecification.ensureInitializedInternalSneaky(BaseQuerySpecification.java:89) at org.eclipse.incquery.runtime.api.impl.BaseGeneratedEMFQuerySpecification.<init>(BaseGeneratedEMFQuerySpecification.java:37) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.<init>(StateIsCompositeQuerySpecification.java:39) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.<init>(StateIsCompositeQuerySpecification.java:38) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$LazyHolder.make(StateIsCompositeQuerySpecification.java:74) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$LazyHolder.<clinit>(StateIsCompositeQuerySpecification.java:71) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.instance(StateIsCompositeQuerySpecification.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.incquery.runtime.extensibility.SingletonExtensionFactory.create(SingletonExtensionFactory.java:44) at org.eclipse.incquery.runtime.extensibility.PQueryExtensionFactory.create(PQueryExtensionFactory.java:28) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.processWellbehavingExtension(ExtensionBasedSurrogateQueryLoader.java:86) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.getKnownSurrogateQueryFQNs(ExtensionBasedSurrogateQueryLoader.java:71) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.loadKnownSurrogateQueriesIntoRegistry(ExtensionBasedSurrogateQueryLoader.java:54) at org.eclipse.incquery.runtime.IncQueryRuntimePlugin.start(IncQueryRuntimePlugin.java:27) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) at java.security.AccessController.doPrivileged(null:-2) at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764) at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721) at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318) at org.eclipse.osgi.container.Module.doStart(Module.java:571) at org.eclipse.osgi.container.Module.start(Module.java:439) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:327) at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:398) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) at java.lang.ClassLoader.loadClass(null:-1) at org.eclipse.incquery.validation.runtime.ValidationUtil.<clinit>(ValidationUtil.java:34) at org.eclipse.incquery.validation.runtime.ui.EditorReferenceTester.test(EditorReferenceTester.java:27) at org.eclipse.core.internal.expressions.Property.test(Property.java:58) at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100) at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:75) at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:256) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:166) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:96) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:188) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:199) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.showMenu(MenuManagerShowProcessor.java:230) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.menuAboutToHide(MenuManagerShowProcessor.java:110) at org.eclipse.jface.internal.MenuManagerEventHelper.showEventPostHelper(MenuManagerEventHelper.java:92) at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:467) at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:461) at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:493) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:255) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1137) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1118) at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5023) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4691) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1633) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2117) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050) at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(OS.java:-2) at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:262) at org.eclipse.swt.widgets.Display.runPopups(Display.java:4221) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3763) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608) at org.eclipse.equinox.launcher.Main.run(Main.java:1515) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Sample at 17:49:41.866 (+0.417s) Thread 'main' tid=1 (RUNNABLE) [5 child-status duplicates removed by Error Reporting] fingerprint: 3589eec2 exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createObject(XMLHelperImpl.java:885) at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createObject(XMLHelperImpl.java:922) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFactory(XMLHandler.java:2222) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFeatureType(XMLHandler.java:2195) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObject(XMLHandler.java:2071) at org.eclipse.emf.ecore.xmi.impl.XMIHandler.createObject(XMIHandler.java:128) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1876) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1030) at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:81) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1008) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:719) at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:163) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(null:-1) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(null:-1) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(null:-1) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(null:-1) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(null:-1) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(null:-1) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(null:-1) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(null:-1) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(null:-1) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(null:-1) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(null:-1) at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175) at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:261) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1518) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1297) at org.eclipse.uml2.uml.internal.impl.UMLPackageImpl.loadPackage(UMLPackageImpl.java:17520) at org.eclipse.uml2.uml.internal.impl.UMLPackageImpl.init(UMLPackageImpl.java:1910) at org.eclipse.uml2.uml.UMLPackage.<clinit>(UMLPackage.java:83) at sun.misc.Unsafe.ensureClassInitialized(null:-2) at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(null:-1) at sun.reflect.ReflectionFactory.newFieldAccessor(null:-1) at java.lang.reflect.Field.acquireFieldAccessor(null:-1) at java.lang.reflect.Field.getFieldAccessor(null:-1) at java.lang.reflect.Field.get(null:-1) at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:275) at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage(EPackageRegistryImpl.java:127) at org.eclipse.incquery.runtime.api.impl.BaseGeneratedEMFPQuery.getClassifierLiteral(BaseGeneratedEMFPQuery.java:45) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$GeneratedPQuery.doGetContainedBodies(StateIsCompositeQuerySpecification.java:111) at org.eclipse.incquery.runtime.matchers.psystem.queries.BasePQuery.ensureInitialized(BasePQuery.java:169) at org.eclipse.incquery.runtime.api.impl.BaseQuerySpecification.ensureInitializedInternalSneaky(BaseQuerySpecification.java:89) at org.eclipse.incquery.runtime.api.impl.BaseGeneratedEMFQuerySpecification.<init>(BaseGeneratedEMFQuerySpecification.java:37) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.<init>(StateIsCompositeQuerySpecification.java:39) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.<init>(StateIsCompositeQuerySpecification.java:38) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$LazyHolder.make(StateIsCompositeQuerySpecification.java:74) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification$LazyHolder.<clinit>(StateIsCompositeQuerySpecification.java:71) at org.eclipse.incquery.uml.derivedfeatures.util.StateIsCompositeQuerySpecification.instance(StateIsCompositeQuerySpecification.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.incquery.runtime.extensibility.SingletonExtensionFactory.create(SingletonExtensionFactory.java:44) at org.eclipse.incquery.runtime.extensibility.PQueryExtensionFactory.create(PQueryExtensionFactory.java:28) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.processWellbehavingExtension(ExtensionBasedSurrogateQueryLoader.java:86) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.getKnownSurrogateQueryFQNs(ExtensionBasedSurrogateQueryLoader.java:71) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.loadKnownSurrogateQueriesIntoRegistry(ExtensionBasedSurrogateQueryLoader.java:54) at org.eclipse.incquery.runtime.IncQueryRuntimePlugin.start(IncQueryRuntimePlugin.java:27) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) at java.security.AccessController.doPrivileged(null:-2) at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764) at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721) at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318) at org.eclipse.osgi.container.Module.doStart(Module.java:571) at org.eclipse.osgi.container.Module.start(Module.java:439) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:327) at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:398) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) at java.lang.ClassLoader.loadClass(null:-1) at org.eclipse.incquery.validation.runtime.ValidationUtil.<clinit>(ValidationUtil.java:34) at org.eclipse.incquery.validation.runtime.ui.EditorReferenceTester.test(EditorReferenceTester.java:27) at org.eclipse.core.internal.expressions.Property.test(Property.java:58) at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100) at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:75) at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:256) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:166) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:96) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:188) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:199) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.showMenu(MenuManagerShowProcessor.java:230) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.menuAboutToHide(MenuManagerShowProcessor.java:110) at org.eclipse.jface.internal.MenuManagerEventHelper.showEventPostHelper(MenuManagerEventHelper.java:92) at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:467) at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:461) at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:493) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:255) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1137) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1118) at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5023) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4691) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1633) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2117) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050) at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(OS.java:-2) at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:262) at org.eclipse.swt.widgets.Display.runPopups(Display.java:4221) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3763) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608) at org.eclipse.equinox.launcher.Main.run(Main.java:1515) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Sample at 17:49:42.202 (+0.336s) Thread 'main' tid=1 (RUNNABLE) fingerprint: e10f3b73 exception class: java.lang.Exception exception message: Stack Trace number of children: 5 java.lang.Exception: Stack Trace at org.eclipse.incquery.uml.derivedfeatures.util.ActionOutputQuerySpecification.<init>(ActionOutputQuerySpecification.java:36) at org.eclipse.incquery.uml.derivedfeatures.util.ActionOutputQuerySpecification.<init>(ActionOutputQuerySpecification.java:35) at org.eclipse.incquery.uml.derivedfeatures.util.ActionOutputQuerySpecification$LazyHolder.make(ActionOutputQuerySpecification.java:71) at org.eclipse.incquery.uml.derivedfeatures.util.ActionOutputQuerySpecification$LazyHolder.<clinit>(ActionOutputQuerySpecification.java:68) at org.eclipse.incquery.uml.derivedfeatures.util.ActionOutputQuerySpecification.instance(ActionOutputQuerySpecification.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.incquery.runtime.extensibility.SingletonExtensionFactory.create(SingletonExtensionFactory.java:44) at org.eclipse.incquery.runtime.extensibility.PQueryExtensionFactory.create(PQueryExtensionFactory.java:28) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.processWellbehavingExtension(ExtensionBasedSurrogateQueryLoader.java:86) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.getKnownSurrogateQueryFQNs(ExtensionBasedSurrogateQueryLoader.java:71) at org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.loadKnownSurrogateQueriesIntoRegistry(ExtensionBasedSurrogateQueryLoader.java:54) at org.eclipse.incquery.runtime.IncQueryRuntimePlugin.start(IncQueryRuntimePlugin.java:27) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771) at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) at java.security.AccessController.doPrivileged(null:-2) at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764) at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721) at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318) at org.eclipse.osgi.container.Module.doStart(Module.java:571) at org.eclipse.osgi.container.Module.start(Module.java:439) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:327) at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:398) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) at java.lang.ClassLoader.loadClass(null:-1) at org.eclipse.incquery.validation.runtime.ValidationUtil.<clinit>(ValidationUtil.java:34) at org.eclipse.incquery.validation.runtime.ui.EditorReferenceTester.test(EditorReferenceTester.java:27) at org.eclipse.core.internal.expressions.Property.test(Property.java:58) at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100) at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:75) at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:256) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:166) at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:96) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:188) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:199) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.showMenu(MenuManagerShowProcessor.java:230) at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerShowProcessor.menuAboutToHide(MenuManagerShowProcessor.java:110) at org.eclipse.jface.internal.MenuManagerEventHelper.showEventPostHelper(MenuManagerEventHelper.java:92) at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:467) at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:461) at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:493) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:255) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1137) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1118) at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5023) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4691) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1633) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2117) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050) at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(OS.java:-2) at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:262) at org.eclipse.swt.widgets.Display.runPopups(Display.java:4221) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3763) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2) at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1) at java.lang.reflect.Method.invoke(null:-1) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608) at org.eclipse.equinox.launcher.Main.run(Main.java:1515) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Thread 'EventAdmin Async Event Dispatcher Thread' tid=34 (WAITING) Waiting for: org.eclipse.swt.widgets.RunnableLock@5c364d8b fingerprint: b043c11b exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Object.wait(null:-2) at java.lang.Object.wait(null:-1) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:199) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4761) at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211) at org.eclipse.e4.ui.internal.di.UIEventObjectSupplier$UIEventHandler.handleEvent(UIEventObjectSupplier.java:53) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Thread 'Java indexing' tid=30 (WAITING) Waiting for: org.eclipse.jdt.internal.core.search.indexing.IndexManager@016f796e fingerprint: 7c705654 exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Object.wait(null:-2) at java.lang.Object.wait(null:-1) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:382) at java.lang.Thread.run(null:-1) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Thread 'EMF Reference Cleaner' tid=20 (WAITING) Waiting for: java.lang.ref.ReferenceQueue$Lock@5ebf9f8e fingerprint: 25fbd6cf exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Object.wait(null:-2) at java.lang.ref.ReferenceQueue.remove(null:-1) at java.lang.ref.ReferenceQueue.remove(null:-1) at org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Thread 'Worker-JM' tid=19 (WAITING) Waiting for: java.util.ArrayList@308bcbc7 fingerprint: 71d460f9 exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Object.wait(null:-2) at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:59) --- code: 0 plugin: org.eclipse.ui.monitoring_1.0.0.v20150512-1436 message: Thread 'Thread-7' tid=40 (TIMED_WAITING) fingerprint: ae0778db exception class: java.lang.Exception exception message: Stack Trace number of children: 0 java.lang.Exception: Stack Trace at java.lang.Thread.sleep(null:-2) at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:68) General Information: reported-by: Akos Horvath anonymous-id: d1d08937-a84b-4a32-ac52-c6e3d2c5fbd1 eclipse-build-id: 4.5.0.I20150603-2000 eclipse-product: org.eclipse.epp.package.committers.product operating system: Windows8 6.2.0 (x86_64) - win32 jre-version: 1.8.0_25-b18 The following plug-ins were present on the execution stack (*): 1. org.eclipse.core.databinding.observable_1.5.0.v20150422-0725 2. org.eclipse.core.databinding_1.5.0.v20150422-0725 3. org.eclipse.core.expressions_3.5.0.v20150421-2214 4. org.eclipse.core.jobs_3.7.0.v20150330-2103 5. org.eclipse.core.runtime_3.11.0.v20150405-1723 6. org.eclipse.e4.ui.di_1.1.0.v20150422-0725 7. org.eclipse.e4.ui.workbench_1.3.0.v20150531-1948 8. org.eclipse.e4.ui.workbench.renderers.swt_0.13.0.v20150603-0857 9. org.eclipse.e4.ui.workbench.swt_0.13.0.v20150504-0621 10. org.eclipse.emf.common_2.11.0.v20150512-0501 11. org.eclipse.emf_2.6.0.v20150601-0402 12. org.eclipse.emf.ecore_2.11.0.v20150512-0501 13. org.eclipse.emf.ecore.xmi_2.11.0.v20150512-0501 14. org.eclipse.equinox.app_1.3.300.v20150423-1356 15. org.eclipse.equinox.event_1.3.100.v20140115-1647 16. org.eclipse.equinox.launcher_1.3.100.v20150511-1540 17. org.eclipse.equinox.p2.updatechecker_1.1.200.v20131119-0908 18. org.eclipse.incquery.runtime_1.0.0.201506301446 19. org.eclipse.incquery.runtime.matchers_1.0.0.201506301446 20. org.eclipse.incquery.uml_1.0.0.201506301446 21. org.eclipse.incquery.validation.runtime_1.0.0.201506301446 22. org.eclipse.incquery.validation.runtime.ui_1.0.0.201506301446 23. org.eclipse.jdt.core_3.11.0.v20150602-1242 24. org.eclipse.jdt_3.11.0.v20150603-2000 25. org.eclipse.jface_3.11.0.v20150602-1400 26. org.eclipse.osgi_3.10.100.v20150529-1857 27. org.eclipse.swt_3.104.0.v20150528-0211 28. org.eclipse.ui_3.107.0.v20150507-1945 29. org.eclipse.ui.ide.application_1.1.0.v20150422-0725 30. org.eclipse.ui.ide_3.11.0.v20150510-1749 31. org.eclipse.ui.monitoring_1.0.0.v20150512-1436 32. org.eclipse.uml2.uml_5.1.0.v20150601-0733 33. org.eclipse.uml2_5.0.0.v20150601-0733 Please note that: * Messages, stacktraces, and nested status objects may be shortened. * Bug fields like status, resolution, and whiteboard are sent back to reporters. * The list of present bundles and their respective versions was calculated by package naming heuristics. This may or may not reflect reality. Other Resources: * Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/559bf54ce4b0cf2e4bf531d8 * Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide Thank you for your assistance. Your friendly error-reports-inbox. This bug was created on behalf of ujhelyiz@xxxxxxxxxxxx.
Based on these three traces, the culprit is org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader.loadKnownSurrogateQueriesIntoRegistry(ExtensionBasedSurrogateQueryLoader.java:54) at org.eclipse.incquery.runtime.IncQueryRuntimePlugin.start(IncQueryRuntimePlugin.java:27)
(In reply to Abel Hegedus from comment #1) > Based on these three traces, the culprit is > org.eclipse.incquery.runtime.internal.ExtensionBasedSurrogateQueryLoader. > loadKnownSurrogateQueriesIntoRegistry(ExtensionBasedSurrogateQueryLoader. > java:54) > at > org.eclipse.incquery.runtime.IncQueryRuntimePlugin. > start(IncQueryRuntimePlugin.java:27) Indeed. We should think about a way to handle these definitions without loading the incquery runtime...
I can get around loading the incquery.runtime plugin when checking the Validation contributions, but it breaks the ValidationManager API as I would need to remove a method that I want to set as deprecated anyway (initializeValidationEngine(Notifier notifier, String editorId)) While this method is there, the class loader initializes the plugin while loading the IncQueryScope class before invoking ValidationManager.isConstraintSpecificationsRegisteredForEditorId(editorId) even though it is not used there.
New Gerrit change created: https://git.eclipse.org/r/59663
I think I managed to fix the issue without breaking any API, see Gerrit change.
(In reply to Abel Hegedus from comment #3) > I can get around loading the incquery.runtime plugin when checking the > Validation contributions, but it breaks the ValidationManager API as I would > need to remove a method that I want to set as deprecated anyway > (initializeValidationEngine(Notifier notifier, String editorId)) What if we move the code not requiring to a base class of the existing ValidationManager? That way, we maintain compatibility, but still can use the features without starting IncQuery runtime.
Gerrit change https://git.eclipse.org/r/59663 was merged to [master]. Commit: http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/commit/?id=83b7488c4658d8b2e5b893b90ff396ccb7ced625
We have merged an internal refactor to avoid starting the incquery.runtime plugin before it is really necessary.
New Gerrit change created: https://git.eclipse.org/r/59745
The first change only avoids loading incquery.runtime if there are no registered validation constraints at all. I have done the switch to the provider based approach now.
Gerrit change https://git.eclipse.org/r/59745 was merged to [master]. Commit: http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/commit/?id=3cf54c3096ad35a4f3482234fccf0dd80b231968
Added provider based handling of constraint specifications loaded from extensions to avoid starting incquery.runtime during enablement checking.