Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] NullPointerException for ManyToOne ingenericEmbeddable

Done:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=284013


Guy Pelletier wrote:
> 
> Yes, please enter a bug for this.
> 
> Thanks,
> Guy
> 
> ----- Original Message ----- 
> From: "jml83" <jeffrey.m.leong@xxxxxxxxx>
> To: <eclipselink-users@xxxxxxxxxxx>
> Sent: Friday, July 17, 2009 5:01 PM
> Subject: Re: [eclipselink-users] NullPointerException for ManyToOne 
> ingenericEmbeddable
> 
> 
>>
>> Here is a paraphrase of the code:
>>
>> @Embeddable
>> public class Value  implements Serializable {
>> @ManyToOne
>> private A asset;
>>
>> @Basic
>> private double value;
>> }
>>
>> @Entity
>> @Inheritance(strategy=InheritanceStrategy.Joined)
>> public Asset{
>> @Id
>> private String name;
>> }
>>
>> @Entity
>> public Stock extends Asset{
>> private String ticker;
>> }
>>
>> @Entity
>> public ValueHolder{
>> @Id
>> String name;
>>
>> @Embedded
>> private Value<Stock> value;
>> }
>>
>> The same exact
>> EntityAccessor.discoverMappedSuperclassesAndInheritanceParents() method 
>> may
>> not work, but wouldn't it make sense to have a similar method that 
>> discovers
>> the TypeVariables for Embedded classes and populates m_genericTypes?
>>
>>
>> Guy Pelletier wrote:
>>>
>>> That likely won't fix it.
>>>
>>> What does your embeddable mapping look like?
>>>
>>> Cheers,
>>> Guy
>>> ----- Original Message ----- 
>>> From: "jml83" <jeffrey.m.leong@xxxxxxxxx>
>>> To: <eclipselink-users@xxxxxxxxxxx>
>>> Sent: Friday, July 17, 2009 1:12 PM
>>> Subject: [eclipselink-users] NullPointerException for ManyToOne in
>>> genericEmbeddable
>>>
>>>
>>>>
>>>> I get the following exception when trying to process an Embeddable with 
>>>> a
>>>> generic ManyToOne relationship using the built in
>>>> org.eclipse.jpt.eclipselink.core.ddlgen.Main class in Eclipse Galileo:
>>>>
>>>> Caused by: java.lang.NullPointerException
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.setAnnotatedElement(MetadataAnnotatedElement.java:559)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.<init>(MetadataAnnotatedElement.java:90)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.<init>(MetadataClass.java:32)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.isEmbedded(MetadataAnnotatedElement.java:359)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.buildAccessor(ClassAccessor.java:261)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessorFields(ClassAccessor.java:577)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.addAccessors(ClassAccessor.java:239)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessors(ClassAccessor.java:633)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAccessor.process(EmbeddableAccessor.java:85)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedAccessor.processEmbeddableClass(EmbeddedAccessor.java:345)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedAccessor.process(EmbeddedAccessor.java:134)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.processAccessors(MetadataDescriptor.java:1082)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processAccessors(ClassAccessor.java:636)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processAccessors(EntityAccessor.java:611)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.process(EntityAccessor.java:530)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:446)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:303)
>>>> at
>>>> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:838)
>>>> ... 8 more
>>>>
>>>> I took the liberty of debugging the stack a lil bit, and it seems the
>>>> m_rawClass doesn't get set properly in the method
>>>> MetadataAnnotatedElement.getRawClass() because the m_genericTypes
>>>> variable
>>>> never gets populated for EmbeddableAccessor.
>>>>
>>>> It does however get populated properly for Entites by the
>>>> EntityAccessor.discoverMappedSuperclassesAndInheritanceParents()
>>>> method.
>>>> At
>>>> the risk of sounding presumptuous, it would seem calling a similar 
>>>> method
>>>> in
>>>> the process() method of the EmbeddableAccessor might fix this...
>>>> Apologies
>>>> for the amateur diagnosis, but this has been really jamming up my work.
>>>>
>>>> Could this be fixed for generics on Embeddables?
>>>>
>>>> p.s. should I be sending this to the DEV list?
>>>>
>>>> -- 
>>>> View this message in context:
>>>> http://www.nabble.com/NullPointerException-for-ManyToOne-in-generic-Embeddable-tp24535000p24535000.html
>>>> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>>>
>>>> _______________________________________________
>>>> eclipselink-users mailing list
>>>> eclipselink-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>
>>>
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>>
>>
>> -- 
>> View this message in context: 
>> http://www.nabble.com/NullPointerException-for-ManyToOne-in-generic-Embeddable-tp24535000p24541659.html
>> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>> 
> 
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/NullPointerException-for-ManyToOne-in-generic-Embeddable-tp24535000p24571179.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top