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

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




Back to the top