Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Memory leak in IndirectList

I see the following references to ClientSession in memory. I'm using
EclipseLink 1.1.2. You can see that ServerSession end-up to reference an
object that has an IndirectList, which point to BatchValueHolder, that
keep reference to a ReadAllQuery with a UOW and ClientSession.

Is it a known issue? Any workaround?

org.eclipse.persistence.sessions.server.ClientSession
org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork
org.eclipse.persistence.queries.ReadAllQuery
org.eclipse.persistence.internal.indirection.BatchValueHolder
org.eclipse.persistence.indirection.IndirectList
com.saic.ct.sys.domain.dataservices.RtsWorkingSchedule
com.saic.ct.sys.domain.dataservices.RtsReconciledTimeEntryPair
java.lang.ref.SoftReference
org.eclipse.persistence.internal.helper.linkedlist.LinkedNode
org.eclipse.persistence.internal.helper.linkedlist.LinkedNode
org.eclipse.persistence.internal.helper.linkedlist.ExposedNodeLinkedList
org.eclipse.persistence.internal.identitymaps.SoftCacheWeakIdentityMap
org.eclipse.persistence.internal.identitymaps.IdentityMapManager
org.eclipse.persistence.internal.sessions.IdentityMapAccessor
org.eclipse.persistence.sessions.server.ServerSession
java.util.Hashtable$HashtableCacheHashEntry
java.util.Hashtable$Entry[]
java.util.Hashtable
org.eclipse.persistence.sessions.factories.SessionManager
org.eclipse.persistence.sessions.factories.SessionManager
com.ibm.oti.vm.BootstrapClassLoader

-----Original Message-----
From: eclipselink-users-bounces@xxxxxxxxxxx
[mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of jml83
Sent: Friday, July 17, 2009 5:02 PM
To: eclipselink-users@xxxxxxxxxxx
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.Metadata
AnnotatedElement.setAnnotatedElement(MetadataAnnotatedElement.java:559)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.objects.Metadata
AnnotatedElement.<init>(MetadataAnnotatedElement.java:90)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.objects.Metadata
Class.<init>(MetadataClass.java:32)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.objects.Metadata
AnnotatedElement.isEmbedded(MetadataAnnotatedElement.java:359)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAcc
essor.buildAccessor(ClassAccessor.java:261)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAcc
essor.processAccessorFields(ClassAccessor.java:577)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAcc
essor.addAccessors(ClassAccessor.java:239)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAcc
essor.processAccessors(ClassAccessor.java:633)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.Embeddab
leAccessor.process(EmbeddableAccessor.java:85)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.Embedde
dAccessor.processEmbeddableClass(EmbeddedAccessor.java:345)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.Embedde
dAccessor.process(EmbeddedAccessor.java:134)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.process
Accessors(MetadataDescriptor.java:1082)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAcc
essor.processAccessors(ClassAccessor.java:636)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAc
cessor.processAccessors(EntityAccessor.java:611)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAc
cessor.process(EntityAccessor.java:530)
>> at
>>
org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processO
RMMetadata(MetadataProcessor.java:446)
>> at
>>
org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor
.processORMetadata(PersistenceUnitProcessor.java:303)
>> at
>>
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(En
tityManagerSetupImpl.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-Embe
ddable-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-Embe
ddable-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