Hi All,

I'm testing upgrading to 1.0.2 of OpenJPA.  I have two test classes that
look like this:

@Entity
@Table(name = "Persons")
@Inheritance(strategy= InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="CLASS", discriminatorType =
DiscriminatorType.STRING)
public abstract class Person
{
    @Column(name = "OID")
    @Id
    @GeneratedValue
    private long id;

    @Column(name = "LastName")
    private String lastName;

    @Column(name = "FirstName")
    private String firstName;

    @Column(name = "MiddleName")
    private String middleName;

    @OneToOne(cascade={CascadeType.PERSIST, CascadeType.REMOVE})
    @JoinColumn(name = "AddressOID", referencedColumnName = "OID")
    @Dependent
    private Address address;
}

@Entity
@DiscriminatorValue("Contact")
public class Contact
        extends Person
        implements Cloneable
{
    @ManyToOne(cascade={CascadeType.PERSIST})
    @JoinColumn(name = "CustomerOID")
    private Customer customer;

    @Column(name = "AcquireDate")
    private long acquireDate;
}

In OpenJPA 1.0.1, these two classes enhanced without problems.  Now in
1.0.2, when I run the enhancer, I get the following two exceptions:

<openjpa-1.0.2-r420667:627158 fatal user error>
org.apache.openjpa.util.MetaDataException: Errors encountered while
resolving metadata.  See nested exceptions for details.
        at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja
va:522)
        at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepositor
y.java:302)
        at
org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:241)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4357)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4304)
        at
com.axway.passport.persistence.util.JpaEnhancer.run(JpaEnhancer.java:47)
        at
com.axway.passport.persistence.util.JpaEnhancer.main(JpaEnhancer.java:34
)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: <openjpa-1.0.2-r420667:627158 fatal user error>
org.apache.openjpa.util.MetaDataException: Attempt to map
"com.axway.passport.persistence.samples.Person.id" failed: the owning
entity is not mapped.
        at
org.apache.openjpa.jdbc.meta.MappingInfo.assertTable(MappingInfo.java:54
4)
        at
org.apache.openjpa.jdbc.meta.MappingInfo.createColumns(MappingInfo.java:
496)
        at
org.apache.openjpa.jdbc.meta.ValueMappingInfo.getColumns(ValueMappingInf
o.java:143)
        at
org.apache.openjpa.jdbc.meta.strats.PrimitiveFieldStrategy.map(Primitive
FieldStrategy.java:83)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:
120)
        at
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(Ru
ntimeStrategyInstaller.java:80)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.ja
va:438)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:403)
        at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(Cla
ssMapping.java:841)
        at
org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRep
ository.java:322)
        at
org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository
.java:621)
        at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja
va:508)
        ... 11 more
NestedThrowables:
java.lang.NullPointerException
        at
org.apache.openjpa.jdbc.meta.MappingInfo.mergeJoinColumn(MappingInfo.jav
a:1386)
        at
org.apache.openjpa.jdbc.meta.MappingInfo.createJoins(MappingInfo.java:11
92)
        at
org.apache.openjpa.jdbc.meta.MappingInfo.createForeignKey(MappingInfo.ja
va:954)
        at
org.apache.openjpa.jdbc.meta.ValueMappingInfo.getTypeJoin(ValueMappingIn
fo.java:104)
        at
org.apache.openjpa.jdbc.meta.strats.RelationToManyTableFieldStrategy.map
(RelationToManyTableFieldStrategy.java:130)
        at
org.apache.openjpa.jdbc.meta.strats.RelationCollectionTableFieldStrategy
.map(RelationCollectionTableFieldStrategy.java:94)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:
120)
        at
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(Ru
ntimeStrategyInstaller.java:80)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.ja
va:438)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:403)
        at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.ja
va:812)
        at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1618)
        at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataReposit
ory.java:675)
        at
org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataReposi
tory.java:636)
        at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja
va:514)
        at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepositor
y.java:302)
        at
org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:241)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4357)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4304)
        at
com.axway.passport.persistence.util.JpaEnhancer.run(JpaEnhancer.java:47)
        at
com.axway.passport.persistence.util.JpaEnhancer.main(JpaEnhancer.java:34
)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

<openjpa-1.0.2-r420667:627158 fatal user error>
org.apache.openjpa.util.MetaDataException: Attempt to map
"com.axway.passport.persistence.samples.Contact.acquireDate" failed: the
owning entity is not mapped.
        at
org.apache.openjpa.jdbc.meta.MappingInfo.assertTable(MappingInfo.java:54
4)
        at
org.apache.openjpa.jdbc.meta.MappingInfo.createColumns(MappingInfo.java:
496)
        at
org.apache.openjpa.jdbc.meta.ValueMappingInfo.getColumns(ValueMappingInf
o.java:143)
        at
org.apache.openjpa.jdbc.meta.strats.PrimitiveFieldStrategy.map(Primitive
FieldStrategy.java:83)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:
120)
        at
org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(Ru
ntimeStrategyInstaller.java:80)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.ja
va:438)
        at
org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:403)
        at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(Cla
ssMapping.java:851)
        at
org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.ja
va:808)
        at
org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1618)
        at
org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataReposit
ory.java:675)
        at
org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataReposi
tory.java:636)
        at
org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja
va:514)
        at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepositor
y.java:302)
        at
org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:241)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4357)
        at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4304)
        at
com.axway.passport.persistence.util.JpaEnhancer.run(JpaEnhancer.java:47)
        at
com.axway.passport.persistence.util.JpaEnhancer.main(JpaEnhancer.java:34
)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

Anyone have any ideas on why this worked in 1.0.1 and not 1.0.2 and what
I can do to resolve this?

Thanks for your help.

Amit

Reply via email to