Hi Matt,
Thanks for diagnosing this. PrefixMapper.java has already been
fixed in Tomcat 3.2.2 and Tomcat 3.3m1 and up. I'll mark this bug
as a duplicate of Bug 136.
Cheers
Larry
> -----Original Message-----
> From: matthew denner [mailto:[EMAIL PROTECTED]]
> Sent: Friday, February 23, 2001 9:35 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: fix for bug 535?
>
>
> Dear all,
>
> think i may have tracked down the problem with bug 535 in the
> tomcat bug
> database. the bug reports deadlock in connection handlers
> and specifically
> reports that thread stack trace ends:
>
> "Thread-15" prio=1 tid=0x816d920 nid=0x22e0 waiting for monitor entry
> [0xbadff000..0xbadffb28]
> at java.util.Hashtable.get(Hashtable.java:319)
> at
> org.apache.tomcat.util.PrefixMapper.getLongestPrefixMatch(Pref
> ixMapper.java:220)
> at
> org.apache.tomcat.request.SimpleMapper1.contextMap(SimpleMappe
> r1.java:258)
>
> i took a quick look at PrefixMapper.getLongestPrefixMatch()
> and i think the
> problem is that the while loop:
>
> while (s.length() >= 0) {
> //if(debug>8) context.log( "Prefix: " + s );
> container = myMap.prefixMappedServlets.get(s);
>
> if (container == null) {
> s=URLUtil.removeLast( s );
> } else {
> if( myMap.mapCacheEnabled ) {
> // XXX implement LRU or another
> replacement alghoritm
> myMap.mapCache.put( path, container );
> }
> return container;
> }
> }
>
> will never terminate if it doesn't find a match? basically
> URLUtil.removeLast() returns an empty string if it can't find
> a '/'. this
> means an empty string is always >= 0 and so the loop never
> ends. so i
> suspect that it's just unlucky that the thread stack trace is always
> reporting line 220 as where it's getting stuck (it's actually
> going through
> the code ever-so fast!).
>
> someone want to comment on whether this addresses the issue
> (or whether i'm
> out of step and it has been fixed ... if so, update the bug!)
> in tomcat 3.2.1
> as we're currently badly affected by this.
>
> i also have a fix for some classloader issues but that's for
> another mail ...
>
> Cheers,
> Matt
>
> --------------------------------------------------------------
> ---------------
> Sessami is a trademark of Escape Velocity Technology Mobile
> Services Limited.
> All information contained in this e-mail is confidential and
> for the use of
> the addressee only. If you receive this message in error
> please notify.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]