This now works in the latest nightly drop, thanks guys,

Kevin Jones
DevelopMentor
www.develop.com

> -----Original Message-----
> From: Kevin Jones [mailto:[EMAIL PROTECTED]]
> Sent: 11 May 2001 22:44
> To: [EMAIL PROTECTED]
> Subject: RE: Class Reloading
>
>
> > But, other than efficiency concerns, it should still work if the
> > particular class is *only* found in WEB-INF/classes and *not* in any of
> > the WEB-INF/lib/*.jar files, right?
>
> I don't think so. The class I'm trying to reload is in web-inf/classes, it
> is not in any of the jars in web-inf/lib (is this what you mean?).
>
> I believe (I've yet to test this) that the only way reloading works
> currently (for me) is if I have no jars in web-inf/lib,
>
> Kevin Jones
> DevelopMentor
> www.develop.com
>
> > -----Original Message-----
> > From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> > Sent: 11 May 2001 18:58
> > To: Tomcat-Dev
> > Subject: Re: Class Reloading
> >
> >
> > Thanks Kevin ... I think it's safe to assume that Beta 4 still has this
> > issue :-(.
> >
> > But, other than efficiency concerns, it should still work if the
> > particular class is *only* found in WEB-INF/classes and *not* in any of
> > the WEB-INF/lib/*.jar files, right?
> >
> > NOTE:  automatic reloading is currently supported only for unpacked
> > classes in WEB-INF/lib.
> >
> > Craig
> >
> >
> > On Fri, 11 May 2001, Kevin Jones wrote:
> >
> > > Sorry it's taken me a week to get back to you on this.
> > Class-reloading is
> > > not working in the latest nightly build. I know why, but don't
> > know what the
> > > fix is.
> > >
> > > The problem is in StandardClassLoader::loadClass. This method
> > checks that
> > > the class exists, if it does it wants to add it to the
> > classCache HashMap.
> > > To do this loadCLass has a loop that loops around all the
> 'repositories'
> > > These repositories are the .jar files in the web-inf lib
> > directory. In the
> > > loop it does this
> > >
> > > classCache.put(name, new ClassCacheEntry
> > >      (clazz, classUrl,
> > >       classUrlConnection.getLastModified()));
> > >
> > > but the loop never breaks, so if you have 4 jars in your lib
> > directory code
> > > loops 5 times (once for the classes sub dir and once for each
> > jar) and the
> > > 'last' jar in wins. So the classes in my classes directory
> get added as
> > >
> > >
> > "jar:jndi:/localhost/AddressBook/WEB-INF/lib/xerces.jar!/com/devel
> > op/ewebjav
> > > a/lab/Browse.class"
> > >
> > > The code should check which 'repository' the class is in and
> > only add that
> > > entry to the directory. Of course removing all the jars or
> > putting a break
> > > after the first loop (a brutal but effective solution in my
> > case) fixes the
> > > problem.
> > >
> > > Hope this helps,
> > >
> > > Kevin Jones
> > > DevelopMentor
> > > www.develop.com
> > >
> > >
> >
>

Reply via email to