[hibernate-issues] [Hibernate-JIRA] Commented: (EJB-401) @OneToOne or @ManyToOne references an unknown entity when maven-surefire-test runs without -DforkMode=none property

Farrukh Najmi (JIRA) noreply at atlassian.com
Fri Nov 14 09:40:16 EST 2008


    [ http://opensource.atlassian.com/projects/hibernate/browse/EJB-401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=31712#action_31712 ] 

Farrukh Najmi commented on EJB-401:
-----------------------------------

If this is a classloader issue as I suspect then perhaps someone could look at my hibernate dependencies and their versions to see if it is possible that there is a duplicate older version of some hibernate code that had a bug in this area that has been fixed in a newer version. If so please indicate what jar I should remove. 

> @OneToOne or @ManyToOne references an unknown entity when maven-surefire-test runs without -DforkMode=none property
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: EJB-401
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-401
>             Project: Hibernate Entity Manager
>          Issue Type: Bug
>          Components: EntityManager
>    Affects Versions: 3.3.2.GA
>            Reporter: Farrukh Najmi
>            Priority: Critical
>
> I have an entity class called Referer that references another entity class called Referenced as follows:
> //The class that has a reference
> @Entity(name = "acme.Referer")
> @Table(name = "REFERER")
> @Inheritance(strategy = InheritanceType.JOINED)
> public class DeliveryInfoType extends RefererBase {
>     @ManyToOne(targetEntity = acme.Referenced.class, cascade = {
>         CascadeType.ALL
>     })
>     @JoinColumn(name = "REFERER_REFERENCED_ID")
>     protected acme.Referenced referenced;
>     ...
> }
> //The class that is being referenced
> @Entity(name = "acme.Referenced")
> @Table(name = "REFERENCED")
> @Inheritance(strategy = InheritanceType.JOINED)
> public class EndpointReferenceType
> ...
> }
> The abstract base class for Referer is a mapped superclass called RefererBase as follows:
> @MappedSuperclass
> public abstract class ExtensibleObjectType {
> ...
> }
> When I run a junit test via maven-surefire-plugin while specifying the -DforkMode=none property then the test succeeds.
> When I run a junit test via maven-surefire-plugin without specifying the -DforkMode=none property then the test fails when creating the EntityManagerFactory as follows.
> Caused by: javax.persistence.PersistenceException: [PersistenceUnit: my-persistence-unit] Unable to configure EntityManagerFactory
>         at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265)
>         at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
>         at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
>         at acme.SomeClass.createEntityManagerFactory(SomeClass.java:278)
>         at acme.SomeClass.setUp(SomeClass.java:233)
>         at acme.SomeClass.<init>(SomeClass.java:57)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
>         ... 57 more
> Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on acme.Referer.referenced references an unknown entity: acme.Referenced
>         at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)
>         at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:499)
>         at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:304)
>         at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1121)
>         at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1225)
>         at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:159)
>         at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
>         at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)
>         at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)
>         ... 67 more
> maven-surefire-plugin defines its forkMode property as follows at <http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html>:
> forkMode  	String  	Option to specify the forking mode. Can be "never", "once" or "always". "none" and "pertest" are also accepted for backwards compatibility. Default value is once.
> I am baffled as to why hiberante EntityManager is behaving working when forkMode is set to "none" but fails when forkMode is set to default of "once".
> It seems like a classloader related issue. Here are the hibernate related jars in my webapp:
> org.hibernate:hibernate-search:jar:3.0.1.GA
> org.hibernate:hibernate:jar:3.2.6.ga
> org.hibernate:hibernate-entitymanager:jar:3.3.2.GA
> org.hibernate:hibernate-commons-annotations:jar:3.0.0.ga
> org.hibernate:ejb3-persistence:jar:1.0.1.GA
> org.hibernate:hibernate-annotations:jar:3.3.1.GA
> This issue may possibly be related to following issue:
> <http://opensource.atlassian.com/projects/hibernate/browse/EJB-199>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list