Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Start-up issues - template engine

That's pretty horrible. We should work on a better fix that triggers the loading of the UI plug-in using an extension point. At least until we can fix it properly or replace it with a better engine. We've been using freemarker which works pretty well and the whole architecture of the template engine could be greatly simplified.

Doug.


From: cdt-dev-bounces@xxxxxxxxxxx [cdt-dev-bounces@xxxxxxxxxxx] on behalf of Alena Laskavaia [elaskavaia.cdt@xxxxxxxxx]
Sent: Tuesday, October 07, 2014 2:57 PM
To: Sergey Prigogin
Cc: CDT General developers list.
Subject: Re: [cdt-dev] Start-up issues - template engine

Thanks. I still don't understand idea behind template engine being in core and have ui dependency.
I solved this problem for now by re-arranging plugins dependency so ui plugins initializing before managebuilder.core, that
solved it for now.

On Tue, Oct 7, 2014 at 2:13 PM, Sergey Prigogin <eclipse.sprigogin@xxxxxxxxx> wrote:
You got hit by https://bugs.eclipse.org/bugs/show_bug.cgi?id=296512. The good news is that it has been fixed in Mars.

-sergey

On Tue, Oct 7, 2014 at 11:06 AM, Alena Laskavaia <elaskavaia.cdt@xxxxxxxxx> wrote:
My cdt suddenly does not start anymore. I updated to latest master and it start happening,
however I don't see any cdt changes that can cause that that happened recently.
Basically very nasty problem.
CDT declared template engine extension in cdt.core.
But this extension uses template attribute pagesAfterTemplateSelectionProvider
which must implement org.eclipse.cdt.ui.templateengine.IPagesAfterTemplateSelectionProvider
(ui!!)
Naturally this extension will be defined in ui plugin.
So what happens in startup PDOM indexer trying to pull project description, which
pulls template engine, which in turn in static initialize tried to load extension and RESOLVE
all classes. These classes defined in ui plugins, so eclipse trying to load ui plugins now, but
some stuff at the end wants to run in UI thread, and all these dies horrible death...

Do I miss something or how it does not blow up for other people?


java.lang.ExceptionInInitializerError
    at org.eclipse.ui.internal.themes.WorkbenchThemeManager.<clinit>(WorkbenchThemeManager.java:58)
    at org.eclipse.ui.internal.Workbench.getThemeManager(Workbench.java:3468)
    at org.eclipse.ui.internal.editors.text.EditorsPlugin.start(EditorsPlugin.java:214)
    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(Native Method)
    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:936)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
    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:311)
    at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658)
    at java.lang.Class.getConstructor0(Class.java:2964)
    at java.lang.Class.newInstance(Class.java:403)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:755)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:706)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
    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:311)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:386)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
    at org.eclipse.cdt.core.templateengine.TemplateEngine.initializeTemplateInfoMap(TemplateEngine.java:226)
    at org.eclipse.cdt.core.templateengine.TemplateEngine.<init>(TemplateEngine.java:65)
    at org.eclipse.cdt.core.templateengine.TemplateEngine2.<init>(TemplateEngine2.java:18)
    at org.eclipse.cdt.core.templateengine.TemplateEngine.getDefault(TemplateEngine.java:195)
    at
...
Caused by: org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.SWT.error(SWT.java:4327)
    at org.eclipse.swt.widgets.Display.error(Display.java:1214)
    at org.eclipse.swt.widgets.Display.checkDevice(Display.java:767)
    at org.eclipse.swt.graphics.Device.getSystemFont(Device.java:548)
    at org.eclipse.jface.preference.PreferenceConverter.<clinit>(PreferenceConverter.java:84)
    ... 83 more


_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev



Back to the top