Details
-
Bug
-
Resolution: Done
-
Critical
-
8.3
-
None
Description
Once designer is installed in eclipse and a designer project is imported, validation of the latter takes place. With no server configured, this can result in an exception being displayed:
Errors occurred during the build. Errors running builder 'Model Validator' on project 'US_States'. org.eclipse.core.runtime.CoreException: Plug-in "org.teiid.designer.dqp" was unable to instantiate class "org.teiid.designer.runtime.TeiidServerManager".
Exception in thread "org.teiid.designer.ui.explorer.ModelExplorerResourceNavigator@1112a81.ServerVersionLoadingThread" java.lang.IllegalStateException: org.eclipse.core.runtime.CoreException: Plug-in "org.teiid.designer.dqp" was unable to instantiate class "org.teiid.designer.runtime.TeiidServerManager". at org.teiid.designer.core.ModelerCore.getTeiidServerManager(ModelerCore.java:2290) at org.teiid.designer.ui.explorer.ModelExplorerResourceNavigator$ServerVersionLoadingThread.run(ModelExplorerResourceNavigator.java:323) Caused by: org.eclipse.core.runtime.CoreException: Plug-in "org.teiid.designer.dqp" was unable to instantiate class "org.teiid.designer.runtime.TeiidServerManager". at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:186) 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.teiid.designer.ExtensionRegistryUtils.createExtensionInstances(ExtensionRegistryUtils.java:38) at org.teiid.designer.core.ModelerCore.getTeiidServerManager(ModelerCore.java:2288) ... 1 more Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: No implementation found for the extension point org.teiid.designer.spi.teiidPasswordProvider. at org.teiid.designer.runtime.DqpPlugin.getPasswordProvider(DqpPlugin.java:188) at org.teiid.designer.runtime.TeiidServerManager.<init>(TeiidServerManager.java:292) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:374) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) ... 6 more Caused by: java.lang.IllegalStateException: No implementation found for the extension point org.teiid.designer.spi.teiidPasswordProvider. at org.teiid.designer.ExtensionRegistryUtils.createExtensionInstances(ExtensionRegistryUtils.java:48) at org.teiid.designer.runtime.DqpPlugin.getPasswordProvider(DqpPlugin.java:186)
This is due to the DQP UI plugin not being activated (despite being installed) hence no password provider implementation is available.
Since the password provider is used in only 2 instances, it is misguided to have the dqp plugin depend on its correct initialisation. Better to move its initialisation to when it is actually required, ie. TeiidSourceDataFactory.