[jbosstools-issues] [JBoss JIRA] (JBIDE-26569) Cannot create hibernate config file for hibernate 5.3 and 5.4

André Dietisheim (Jira) issues at jboss.org
Tue Jul 2 10:43:00 EDT 2019


    [ https://issues.jboss.org/browse/JBIDE-26569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13754737#comment-13754737 ] 

André Dietisheim edited comment on JBIDE-26569 at 7/2/19 10:42 AM:
-------------------------------------------------------------------

I tried using a configuration instance with the properties that the wizard creates. It solves the problem with the dialect but new problems arise: the driver class cannot be looked up. Here's my code:
{code:title=org.hibernate.eclipse.console.wizards.NewConfigurationWizard}
private InputStream openContentStream(final Properties props) {
    StringWriter stringWriter = new StringWriter();
    IService service = ServiceLookup.findService(connectionInfoPage.getHibernateVersion()); 
    IExporter hce = service.createExporter("org.hibernate.tool.hbm2x.HibernateConfigurationExporter");
    hce.setCustomProperties(props);
+   ConsoleConfigurationPreferences prefs = new ConsoleConfigurationPreferences() {
+   String name = "test";
+   public void setName(String name) {this.name = name;}
+   public void readStateFrom(Element element) {}
+        public void writeStateTo(Element node) {}
+        public File getPropertyFile() {return null;}
+        public File getConfigXMLFile() {return null;}
+        public Properties getProperties() {return props;}
+        public File[] getMappingFiles() {return null;}
+        public URL[] getCustomClassPathURLS() {return null;}
+        public String getName() {return name;}
+        public String getEntityResolverName() {return null;}
+        public ConfigurationMode getConfigurationMode() {return ConfigurationMode.CORE;}
+        public String getNamingStrategy() {return null;}
+        public String getPersistenceUnitName() {return null;}
+        public String getConnectionProfileName() {return null;}
+        public String getDialectName() {return connectionInfoPage.getDialect();}
+        public String getHibernateVersion() {return connectionInfoPage.getHibernateVersion();}
+   };
+   IConfiguration configuration = new ConfigurationFactory(prefs, null).createConfiguration(null, true);
+   hce.setConfiguration(configuration);
    hce.setOutput(stringWriter);
    hce.start();
    try {
        return new ByteArrayInputStream(stringWriter.toString().getBytes("UTF-8") ); 
    } catch (UnsupportedEncodingException uec) {
        HibernateConsolePlugin.getDefault().logErrorMessage(
        HibernateConsoleMessages.
        NewConfigurationWizard_problems_converting_to_utf8, uec);
        return new ByteArrayInputStream(stringWriter.toString().getBytes() );
    }
}

{code}


was (Author: adietish):
I tried using a configuration instance with the properties that the wizard creates. It solves the problem with the dialect but new problems arise: the driver class cannot be looked up. Here's my code:
{code:title=org.hibernate.eclipse.console.wizards.NewConfigurationWizard}
private InputStream openContentStream(final Properties props) {
        StringWriter stringWriter = new StringWriter();
        IService service = ServiceLookup.findService(connectionInfoPage.getHibernateVersion()); 
        IExporter hce = service.createExporter("org.hibernate.tool.hbm2x.HibernateConfigurationExporter"); //$NON-NLS-1$
 		hce.setCustomProperties(props);
+		ConsoleConfigurationPreferences prefs = new ConsoleConfigurationPreferences() {
+			String name = "test";
+			public void setName(String name) {this.name = name;}
+			public void readStateFrom(Element element) {}
+			public void writeStateTo(Element node) {}
+			public File getPropertyFile() {return null;}
+			public File getConfigXMLFile() {return null;}
+			public Properties getProperties() {return props;}
+			public File[] getMappingFiles() {return null;}
+			public URL[] getCustomClassPathURLS() {return null;}
+			public String getName() {return name;}
+			public String getEntityResolverName() {return null;}
+			public ConfigurationMode getConfigurationMode() {return ConfigurationMode.CORE;}
+			public String getNamingStrategy() {return null;}
+			public String getPersistenceUnitName() {return null;}
+			public String getConnectionProfileName() {return null;}
+			public String getDialectName() {return connectionInfoPage.getDialect();}
+			public String getHibernateVersion() {return connectionInfoPage.getHibernateVersion();}
+		};
+		IConfiguration configuration = new ConfigurationFactory(prefs, null).createConfiguration(null, true);
+ 		hce.setConfiguration(configuration);
		hce.setOutput(stringWriter);
        hce.start();
        try {
            return new ByteArrayInputStream(stringWriter.toString().getBytes("UTF-8") ); 
        } catch (UnsupportedEncodingException uec) {
                HibernateConsolePlugin.getDefault().logErrorMessage(
                      HibernateConsoleMessages.
                                NewConfigurationWizard_problems_converting_to_utf8, uec);
            return new ByteArrayInputStream(stringWriter.toString().getBytes() );
        }
}

{code}

> Cannot create hibernate config file for hibernate 5.3 and 5.4
> -------------------------------------------------------------
>
>                 Key: JBIDE-26569
>                 URL: https://issues.jboss.org/browse/JBIDE-26569
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: hibernate
>    Affects Versions: 4.11.0.Final
>            Reporter: Josef Kopriva
>            Assignee: Koen Aers
>            Priority: Critical
>             Fix For: 4.12.0.Final
>
>         Attachments: JBIDE-26569-console.mov, JBIDE-26569-copy-1.mov, JBIDE-26569-copy-2.mov, JBIDE-26569-import.mov, Screenshot 2019-04-11 15.26.00.png, image-2019-03-08-10-38-30-318.png
>
>
> This workflow works for Hibernate 5.2
> Error from error log:
> {code:java}
> eclipse.buildId=12.11.0.AM1-v20190221-1020-B4114
> java.version=11.0.2
> java.vendor=Oracle Corporation
> BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
> Framework arguments:  -product com.jboss.devstudio.core.product
> Command-line arguments:  -os linux -ws gtk -arch x86_64 -product com.jboss.devstudio.core.product
> org.eclipse.ui
> Error
> Fri Mar 08 10:30:50 CET 2019
> Unhandled event loop exception
> org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
> 	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
> 	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179)
> 	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
> 	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84)
> 	at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474)
> 	at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
> 	at org.hibernate.boot.MetadataSources.buildMetadata(MetadataSources.java:184)
> 	at org.jboss.tools.hibernate.runtime.v_5_3.internal.util.MetadataHelper.buildFromMetadataSources(MetadataHelper.java:49)
> 	at org.jboss.tools.hibernate.runtime.v_5_3.internal.util.MetadataHelper.getMetadata(MetadataHelper.java:21)
> 	at org.jboss.tools.hibernate.runtime.v_5_3.internal.ConfigurationFacadeImpl.getMetadata(ConfigurationFacadeImpl.java:174)
> 	at org.jboss.tools.hibernate.runtime.v_5_3.internal.util.ConfigurationMetadataDescriptor.createMetadata(ConfigurationMetadataDescriptor.java:20)
> 	at org.hibernate.tool.hbm2x.AbstractExporter.buildMetadata(AbstractExporter.java:207)
> 	at org.hibernate.tool.hbm2x.AbstractExporter.getMetadata(AbstractExporter.java:57)
> 	at org.hibernate.tool.hbm2x.AbstractExporter.setupContext(AbstractExporter.java:178)
> 	at org.hibernate.tool.hbm2x.AbstractExporter.start(AbstractExporter.java:105)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.jboss.tools.hibernate.runtime.common.Util.invokeMethod(Util.java:43)
> 	at org.jboss.tools.hibernate.runtime.common.AbstractExporterFacade.start(AbstractExporterFacade.java:72)
> 	at org.hibernate.eclipse.console.wizards.NewConfigurationWizard.openContentStream(NewConfigurationWizard.java:301)
> 	at org.hibernate.eclipse.console.wizards.NewConfigurationWizard.access$2(NewConfigurationWizard.java:295)
> 	at org.hibernate.eclipse.console.wizards.NewConfigurationWizard$1.getInitialContents(NewConfigurationWizard.java:163)
> 	at org.eclipse.ui.dialogs.WizardNewFileCreationPage.createNewFile(WizardNewFileCreationPage.java:383)
> 	at org.hibernate.eclipse.console.wizards.NewConfigurationWizard.performFinish(NewConfigurationWizard.java:198)
> 	at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:775)
> 	at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:414)
> 	at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:622)
> 	at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
> 	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
> 	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
> 	at org.eclipse.jface.window.Window.runEventLoop(Window.java:822)
> 	at org.eclipse.jface.window.Window.open(Window.java:798)
> 	at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:272)
> 	at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:293)
> 	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
> 	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:96)
> 	at jdk.internal.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
> 	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:320)
> 	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:254)
> 	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:164)
> 	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
> 	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:497)
> 	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:490)
> 	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
> 	at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:403)
> 	at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:154)
> 	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568)
> 	at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
> 	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
> 	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
> 	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
> 	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
> 	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
> 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
> 	at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
> 	at org.eclipse.equinox.launcher.Main.main(Main.java:1474)
> Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
> 	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
> 	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
> 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
> 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
> 	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
> 	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
> 	... 89 more
> {code}



--
This message was sent by Atlassian Jira
(v7.12.1#712002)



More information about the jbosstools-issues mailing list