Hi (Len),

got feedback from sun today and they confirmed our findings, i.e.
it's a problem known for a long time. All efforts fixing this failed due
to other incompatibilities, for example see sun-bug-ids 4273532 &
6243815 and their relatives.

The proposed software workaround is using File.toURI().toURL().
As of Java 1.4 java.io.File.toURL is (marked as) deprecated, see
sun-bug-id 61794689.

This leaves two options:

- avoid path names with #s - or other special characters used in the
http/html world but otherwise fully valid on the filesystem => i'm
forced to do this until the next one has been worked on

- fix/workaround this problem in tomcat => middle/long term, i'll open a
bug report

kind regards,
   Markus

Quoting Len Popp <[EMAIL PROTECTED]>:

> There are a few problems caused by "#" in directory names, and it
> looks to me like they're at least partly Tomcat's fault.
>
> 1. The classloader problem that you reported: Tomcat converts file
> pathnames to URLs for URLClassLoader, using File.toURL which handles
> "#" poorly. This could be Sun's fault, but following a note in their
> docs here:
> http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#toURL()
> I was able to fix this problem in Tomcat by calling File.toURI and
> then URI.toURL. (That's the workaround I referred to before.)
>
> 2. After fixing problem 1, I found that JSPs don't work because Jasper
> screws up the pathname of its output directory. There's some code in
> JspCompilationContext that concatenates directories using both URL and
> file syntax, truncating it at the "#" and using both "\" and "/"
> directory separators (in Windows). It looks screwy to me, I don't see
> why it should be using URLs to concatenate file pathnames.
>
> 3, etc. There are several other places in Tomcat where File.toURL is
> used and I think it could have problems with "#" in pathnames, but I
> don't know what the effects are.
>
> So it's pretty clear to me that Tomcat could handle pathnames with "#"
> chars better. Is it worth the trouble to find and fix all the related
> problems, or is it simpler to tell people not to use unusual directory
> names? I could help fix some of the problems, but there are some that
> I haven't figured out.
>
> --
> Len
>
> On 8/12/07, Markus Schiegl <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> Len Popp wrote:
>> > I'm not sure the topic is ready to be nailed shut just yet...
>> >
>> Oh, i have no objections keeping it alive. Unfortunately my java skills
>> are limited so reporting and testing is the best i can do to help.
>>
>> > The problem is due to the way Tomcat converts pathnames to URLs when
>> > it uses URLClassLoader. Tomcat calls the method File.toURL and that
>> > fails when there's a "#" in the pathname. But the Javadoc for
>> > File.toURL suggests a workaround: Convert the pathname to a URI first,
>> > then to a URL.
>>
>> thanks for your confirmation. Looking through bugs.sun.com this seems to
>> be an inherent behaviour with reports starting in 1999. So fixing it in
>> Tomcat would be great, but i'm hesitating calling it a "bug" from
>> Tomcats POV - more a feature request.
>>
>> @Len: Do you have a (javadoc)link for this workaround/suggestion? thx!
>>
>> >
>> > I tried that (in ClassLoaderFactory) and it seem to fix the
>> > classloader problem. Tomcat starts up fine - but it can't compile any
>> > JSPs. So there are other components of Tomcat that have similar
>> > problems.
>>
>> I tried something with a similar result. Just moved CATALINA_HOME to
>> some non-#-directory but left CATALINA_BASE as it was. This way Tomcat
>> started but webapplications could not be deployed/did not work.
>>
>> >
>> > So, my advice is to see how hard it would be for you to get the #s out
>> > of your pathnames. That may be easier than fixing Tomcat.
>>
>> I'm just waiting for some feedback from sun but avoiding #s in directory
>> and file names in the java world is probably the way to go. Otherwise
>> every java application must be forced to workaround this problem. And
>> the latter is more work - if possible at all - than getting rid of #s.
>>
>> kind regards,
>>    Markus
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to