persistence@glassfish.java.net

Re: entity-persistence update (GlassFish issue 486)

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Wed, 05 Apr 2006 18:24:25 -0700

Tom, Sahoo,

I can't reproduce your error message in my environment,
but I was getting the original exception (no @Id, etc.)
on the latest code (I used trunk but it completely matches
the fcs branch).

Can you please check if the following change makes any
difference on your side:

Index:
src/java/oracle/toplink/essentials/internal/ejb/cmp3/metadata/MetadataDescriptor.java
===================================================================
RCS file:
/cvs/glassfish/entity-persistence/src/java/oracle/toplink/essentials/internal/ejb/cmp3/metadata/MetadataDescriptor.java,v
retrieving revision 1.12
diff -r1.12 MetadataDescriptor.java
987c987
< if (hasInheritanceTag(parent) ||
m_metadataDescriptors.containsKey(parent)) {
---
>             if (hasInheritanceTag(parent) ||
m_metadataDescriptors.containsKey(parent) || hasEntityTag(parent)) {
I attach the modified file here.
thanks,
-marina
Tom Ware wrote On 04/05/06 06:14,:
> Sahoo,
> 
>   Thank you for pointing out this issue.  We will investigate.
> 
> -Tom
> 
> Marina Vatkina wrote:
> 
> 
>>CC-ing Jerome and Shelly.
>>
>>-marina
>>
>>Sanjeeb Kumar Sahoo wrote:
>> 
>>
>>
>>>Hi Tom,
>>>
>>>I tried running the test case for issue #486 on my latest workspace and 
>>>got following result:
>>>
>>>Exception [TOPLINK-0] (Oracle TopLink Essentials - 2006.4 (Build 
>>>060404)): oracle.toplink.essentials.exceptions.IntegrityException
>>>Descriptor Exceptions:
>>>---------------------------------------------------------
>>>
>>>Exception [TOPLINK-8] (Oracle TopLink Essentials - 2006.4 (Build 
>>>060404)): oracle.toplink.essentials.exceptions.DescriptorException
>>>Exception Description: The descriptor [RelationalDescriptor(pkg.A --> 
>>>[DatabaseTable(A)])] has been set to use inheritance, but a class 
>>>indicator field has not been defined.
>>>When using inheritance, a class indicator field or class extraction 
>>>method must be set.
>>>Parent Descriptor: [RelationalDescriptor(pkg.A --> [DatabaseTable(A)])]
>>>Descriptor: RelationalDescriptor(pkg.A --> [DatabaseTable(A)])
>>>
>>>Exception [TOPLINK-8] (Oracle TopLink Essentials - 2006.4 (Build 
>>>060404)): oracle.toplink.essentials.exceptions.DescriptorException
>>>Exception Description: The descriptor [RelationalDescriptor(pkg.B --> 
>>>[DatabaseTable(A), DatabaseTable(B)])] has been set to use inheritance, 
>>>but a class indicator field has not been defined.
>>>When using inheritance, a class indicator field or class extraction 
>>>method must be set.
>>>Parent Descriptor: [RelationalDescriptor(pkg.A --> [DatabaseTable(A)])]
>>>Descriptor: RelationalDescriptor(pkg.B --> [DatabaseTable(A), 
>>>DatabaseTable(B)])
>>>
>>>When I added @Inheritance to pkg.A.class, the errors vanished. I am 
>>>using the latest workspace. I saw the issue both in the trunk as well as 
>>>in the 90 branch.
>>>
>>>Thanks,
>>>Sahoo
>>>
>>>Tom Ware wrote:
>>>
>>>   
>>>
>>>
>>>>Checked into entity-persistence on FCS branch on on Trunk
>>>>
>>>>Issue number:  486
>>>>Obtained from: TopLink
>>>>Submitted by:  Tom Ware
>>>>Reviewed by:   TopLink Team
>>>>
>>>>Fix for GlassFish issue 486
>>>>
>>>>Tested with QuickLook, entity-persistence tests and Oracle-internal tests
>>>>     
>>>>