Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.1.1
-
Fix Version/s: 2.1.2
-
Labels:None
-
Environment:Hibernate 4.0.0.CR3
-
Number of attachments :
Description
Hibernate 4 (unlike Hibernate 3) uses the following code to lookup a JNDI datasource:
return context.getNameParser( "" ).parse( jndiName );
This throws an exception in BTM:
Caused by: org.hibernate.service.jndi.JndiException: Error parsing JNDI name [myDS]
at org.hibernate.service.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:92)
at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:63)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:115)
at org.hibernate.service.internal.BasicServiceRegistryImpl.configureService(BasicServiceRegistryImpl.java:81)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:145)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:118)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:208)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:85)
at org.hibernate.service.internal.BasicServiceRegistryImpl.configureService(BasicServiceRegistryImpl.java:81)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:145)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:118)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:70)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2256)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2252)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1721)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
... 34 more
Caused by: javax.naming.OperationNotSupportedException
at bitronix.tm.jndi.BitronixContext.getNameParser(BitronixContext.java:168)
at javax.naming.InitialContext.getNameParser(InitialContext.java:480)
at org.hibernate.service.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:86)
... 50 more
My opinion is that this extra feature is worth a minor release to make sure BTM will still work flawlessly with Hibernate 4 as the next BTM major one is still far from being released.
I can make a candidate build of 2.1.2 with the JNDI name parser implemented in it. Would you be able to test it?
Thanks for the report!