Bug 30281 - java.net.MalformedURLException: Path . does not start with a "/" character
Summary: java.net.MalformedURLException: Path . does not start with a "/" character
Status: RESOLVED INVALID
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Webapps:Administration (show other bugs)
Version: 5.0.25
Hardware: PC All
: P3 critical (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
: 30282 30283 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-07-23 06:47 UTC by Karim Shaik
Modified: 2005-03-20 17:06 UTC (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Karim Shaik 2004-07-23 06:47:01 UTC
Few days back I have upgraded Tomcat from 4.1.29 to 5.0.25 ...

When I deploy the war file in Tomcat 5.0.25 , and tried to login into the web 
page using username and password , the control passes over to next page and in 
that page links are there to Edit or Delete a User , when i am clicking on the 
link "Edit" i am getting the following error

"java.net.MalformedURLException: Path . does not start with a "/" character"

If the same war file is deployed in Tomcat 4.1.29 ... its working fine .... 
here i am able to edit user info

We are using a cocoon frame work in our project , When ever You click on the 
Edit link , control goes to Sitemap and searches for the suitable pattern and 
calls the particular action

I am also pasting the Stack Trace of the Error :

org.apache.cocoon.ProcessingException: IOException JSPReader.generate(): 
java.net.MalformedURLException: Path . does not start with a "/" character 
at org.apache.cocoon.reading.JSPReader.generate(JSPReader.java:153) 
at org.apache.cocoon.components.pipeline.CachingStreamPipeline.processReader
(CachingStreamPipeline.java:251) 
at org.apache.cocoon.components.pipeline.AbstractStreamPipeline.process
(AbstractStreamPipeline.java:168) 
at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process
(CachingStreamPipeline.java:293) 
at org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke
(ReadNode.java:133) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:85) 
at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke
(ActTypeNode.java:150) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:85) 
at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke
(PreparableMatchNode.java:156) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:109) 
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke
(PipelineNode.java:140) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:109) 
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke
(PipelinesNode.java:144) 
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process
(TreeProcessor.java:328) 
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process
(TreeProcessor.java:293) 
at org.apache.cocoon.Cocoon.process(Cocoon.java:575) 
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:999) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157) 
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198) 
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:117) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793) 
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
on(Http11Protocol.java:702) 
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571) 
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:644) 
at java.lang.Thread.run(Thread.java:536) 
Caused by: java.net.MalformedURLException: Path . does not start with a "/" 
character 
at org.apache.catalina.core.ApplicationContext.getResource
(ApplicationContext.java:469) 
at org.apache.catalina.core.ApplicationContextFacade.getResource
(ApplicationContextFacade.java:176) 
at org.apache.cocoon.reading.JSPReader.generate(JSPReader.java:116) 
... 41 more 
java.net.MalformedURLException: Path . does not start with a "/" character 
at org.apache.catalina.core.ApplicationContext.getResource
(ApplicationContext.java:469) 
at org.apache.catalina.core.ApplicationContextFacade.getResource
(ApplicationContextFacade.java:176) 
at org.apache.cocoon.reading.JSPReader.generate(JSPReader.java:116) 
at org.apache.cocoon.components.pipeline.CachingStreamPipeline.processReader
(CachingStreamPipeline.java:251) 
at org.apache.cocoon.components.pipeline.AbstractStreamPipeline.process
(AbstractStreamPipeline.java:168) 
at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process
(CachingStreamPipeline.java:293) 
at org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke
(ReadNode.java:133) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:85) 
at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke
(ActTypeNode.java:150) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:85) 
at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke
(PreparableMatchNode.java:156) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:109) 
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke
(PipelineNode.java:140) 
at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeN
odes(AbstractParentProcessingNode.java:109) 
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke
(PipelinesNode.java:144) 
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process
(TreeProcessor.java:328) 
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process
(TreeProcessor.java:293) 
at org.apache.cocoon.Cocoon.process(Cocoon.java:575) 
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:999) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:237) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:157) 
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198) 
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:117) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109) 
at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793) 
at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
on(Http11Protocol.java:702) 
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571) 
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:644) 
at java.lang.Thread.run(Thread.java:536) 

The same thing is working fine in Tomcat 4.1.29


Kindly help me if anybody knows the solution for this
Comment 1 Remy Maucherat 2004-07-23 06:55:18 UTC
It should be obvious you need to post a test case to investigate something like
this.
Here, it seems quite clear, though: the spec says very clearly that getResource
needs a path starting with a '/'.
Comment 2 Remy Maucherat 2004-07-23 06:56:10 UTC
*** Bug 30282 has been marked as a duplicate of this bug. ***
Comment 3 william.barker 2004-07-23 07:33:56 UTC
*** Bug 30283 has been marked as a duplicate of this bug. ***