On 7/17/07, Kevan Miller <[EMAIL PROTECTED]> wrote:
On Jul 17, 2007, at 12:15 AM, Craig L Russell wrote: > > On Jul 16, 2007, at 7:48 PM, Kevan Miller wrote: > >> >> On Jul 16, 2007, at 10:26 PM, Pinaki Poddar wrote: >> >>> Just to clarify: >>> I meant it should be the loader that loaded Person.class where >>> Person is >>> the persistence capable class, *not* >>> org.apache.openjpa.enhance.PersistenceCapable.class.getClassLoader >>> (). >>> >>> But testing in multi-classloader environment is required to >>> validate any >>> changes of this nature. >> >> Yes, that's how I interpreted your statement. My point is that if >> SSN is a field of Person, the ClassLoader of SSN is not >> necessarily the ClassLoader for Person. I'd be concerned that the >> Person ClassLoader can't load SSN. In that case, your technique >> wouldn't work... > > Just to clarify, if SSN is the type of a field of Person, the > ClassLoader of Person.class must be able to load SSN (either itself > or via a parent ClassLoader) or you will have a linkage error while > loading Person. Craig, You are correct. The declared type must be loadable. I was thinking of an SSNImpl type which need not be. However, that's not really relevant to the problem at hand... Pinaki, I'm afraid that I may have improperly narrowed your objectives by singling out fieldTypes. PCRegistry$Meta.pc and pcSuper could also keep Classes/ClassLoaders alive...
if there are several places where this may happen then perhaps try a variant on http://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/WeakHashtable.java - robert
