[
https://issues.jboss.org/browse/ISPN-3496?page=com.atlassian.jira.plugin....
]
RH Bugzilla Integration commented on ISPN-3496:
-----------------------------------------------
dereed(a)redhat.com made a comment on [bug
1002931|https://bugzilla.redhat.com/show_bug.cgi?id=1002931]
This bug is from LegacyConfigurationAdaptor#adapt(org.infinispan.config.Configuration) --
a new method added in Infinispan 5.2.
The calls in this method to legacy.getClassLoader() return the wrong classloader.
public ClassLoader getClassLoader() {
if (cl != null)
// The classloader has been set for this configuration
return cl;
else if (cl == null && globalConfiguration != null)
// The classloader is not set for this configuration, and we have a global
config
return globalConfiguration.getClassLoader();
else
// Return the default CL
return Thread.currentThread().getContextClassLoader();
}
The correct classloader to use was set by AS in the GlobalConfiguration.
But at the point that DefaultCacheManager#defineCache calls
LegacyConfigurationAdaptor#adapt, setGlobalConfiguration has not been called on the
configuration object, so globalConfiguration is null, causing getClassLoader to
incorrectly return the TCCL instead of the correct classloader.
(In 5.1 setGlobalConfiguration was called later on during wireCache, but is no longer
called at all in 5.2+)
Infinispan library breaks Hibernate 2LC with
java.lang.ClassCastException: org.infinispan.remoting.ReplicationQueueImpl cannot be cast
to org.infinispan.remoting.ReplicationQueue
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: ISPN-3496
URL:
https://issues.jboss.org/browse/ISPN-3496
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.2.1.Final
Environment: EAP 6.1.0 and 6.1.1. This is a regression since EAP 6.0.1
Reporter: Martin Gencur
Assignee: Galder ZamarreƱo
Priority: Critical
Labels: jdg62blocker
Fix For: 6.0.0.Beta2
A WAR deployment containing its own infinispan (such as JDG helloworld quickstart) and
also having persistence.xml with second level cache enabled fails to deploy on EAP 6.1 HA
configuration (standalone-ha.xml or standalone-full-ha.xml)
Version-Release number of selected component (if applicable):
EAP 6.1.0, EAP 6.1.1.ER4.
Note: This does not happen with EAP 6.0.1 so it's a regression.
Steps to Reproduce:
1. Get JDG 6.1 helloworld-jdg quickstart (or see the attachment)
2. Add persistence.xml with 2lc, e.g.:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="entityManager">
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
<property name="hibernate.cache.use_second_level_cache"
value="true"/>
<property name="hibernate.cache.use_query_cache"
value="true"/>
</properties>
</persistence-unit>
</persistence>
{code}
3. deploy the helloworld-jdg on standalone-ha.xml or standalone-full-ha.xml configuration
of EAP 6.1.
This happens also when standalone.xml file is used to start EAP.
The resulting error:
{code}
10:26:20,759 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 53)
MSC000001: Failed to start service
jboss.persistenceunit."jboss-as-helloworld-jdg.war#entityManager":
org.jboss.msc.service.StartException in service
jboss.persistenceunit."jboss-as-helloworld-jdg.war#entityManager":
javax.persistence.PersistenceException: [PersistenceUnit: entityManager] Unable to build
EntityManagerFactory
at
org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:103)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
[jboss-threads-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: entityManager]
Unable to build EntityManagerFactory
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:930)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:92)
at
org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:200)
at
org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$600(PersistenceUnitServiceImpl.java:57)
at
org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:99)
... 4 more
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service
[org.hibernate.engine.spi.CacheImplementor]
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:186)
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:150)
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:264)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1762)
at
org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:920)
... 9 more
Caused by: org.hibernate.cache.CacheException: Unable to start region factory
at
org.hibernate.cache.infinispan.InfinispanRegionFactory.start(InfinispanRegionFactory.java:323)
at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:70)
at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40)
at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35)
at
org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91)
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:176)
... 15 more
Caused by: java.lang.ClassCastException: org.infinispan.remoting.ReplicationQueueImpl
cannot be cast to org.infinispan.remoting.ReplicationQueue
at
org.infinispan.configuration.cache.LegacyConfigurationAdaptor.adapt(LegacyConfigurationAdaptor.java:306)
at
org.infinispan.manager.DefaultCacheManager.defineConfiguration(DefaultCacheManager.java:468)
at
org.infinispan.manager.DefaultCacheManager.defineConfiguration(DefaultCacheManager.java:443)
at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.defineConfiguration(DefaultEmbeddedCacheManager.java:77)
at
org.hibernate.cache.infinispan.InfinispanRegionFactory.defineGenericDataTypeCacheConfigurations(InfinispanRegionFactory.java:492)
at
org.hibernate.cache.infinispan.InfinispanRegionFactory.start(InfinispanRegionFactory.java:318)
... 20 more
10:26:20,968 ERROR [org.jboss.as.server] (management-handler-thread - 4) JBAS015870:
Deploy of deployment "jboss-as-helloworld-jdg.war" was rolled back with the
following failure message:
{"JBAS014671: Failed services" =>
{"jboss.persistenceunit.\"jboss-as-helloworld-jdg.war#entityManager\""
=> "org.jboss.msc.service.StartException in service
jboss.persistenceunit.\"jboss-as-helloworld-jdg.war#entityManager\":
javax.persistence.PersistenceException: [PersistenceUnit: entityManager] Unable to build
EntityManagerFactory
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: entityManager]
Unable to build EntityManagerFactory
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested
service [org.hibernate.engine.spi.CacheImplementor]
Caused by: org.hibernate.cache.CacheException: Unable to start region factory
Caused by: java.lang.ClassCastException: org.infinispan.remoting.ReplicationQueueImpl
cannot be cast to org.infinispan.remoting.ReplicationQueue"}}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira