> -----Original Message-----
> From: Steve Loughran [mailto:[EMAIL PROTECTED] 
> Sent: Friday, 1 September 2006 8:32 PM
> To: Ant Users List
> Subject: Re: Jar Locking
> 
> Stephen McConnell wrote:
> >  
> > 
> >> -----Original Message-----
> >> From: Marc Farrow [mailto:[EMAIL PROTECTED]
> >> Sent: Friday, 1 September 2006 2:35 AM
> >> To: Ant Users List
> >> Subject: Re: Jar Locking
> >>
> >> Thanks Stephen.  If I set all references to Ant to null and forced 
> >> GC, would that resolve the problem?
> > 
> > Well, umm, this is tricky.  If your loading a task or data type 
> > definition I think Ant holds a strong reference to the class which 
> > would suggest that setting things to null would not change (because 
> > strong references are held for the life of the JVM).  I may 
> be wrong 
> > here because it's been a while since I dug into Ant 
> internals on task 
> > class references - but one of the Ant Developers could 
> probably confirm things.
> > 
> > However, if your running Ant as an embedded solution - then in 
> > principal the disposal of the Ant project would clear any task and 
> > datatype references and you may have a chance.  But this is tricky 
> > stuff and getting it right really requires that the Ant project and 
> > all Ant related stuff is loaded in a child classloader 
> relative to the 
> > launching application (i.e. it's the classloader disposal 
> that is key to the releasing of the file reference).
> > 
> > It is possible - but it's not trivial.
> > 
> > Cheers, Steve.
> 
> Isnt it the case that if you hold any class created by a 
> classloader, there is reference to the classloader? because I 
> can always go object.getClass().getClassloader()

Correct.

> 
> you'd need to forget about every object created and returned 
> by ant itself

Yep. Which is when a plugin management framework comes in real handy.
/Steve.

--------------------------
Stephen McConnell
mailto:[EMAIL PROTECTED]
http://www.dpml.net
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to