You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by xe...@wiserlabz.com on 2003/02/24 21:18:39 UTC

dev issue with xerces

 Hi;
I've been working around this issue for a while. Some
programmers from Jetspeed and Cocoon suggested the actual
problem lies with xerces and should be committed there.
There are a couple of fixes in the Bug DB for Jetspeed and
Cocoon (Vadim Gritsenko) has done. The problem has to do
with the handling of Volume Names (Drive Letters) Novell
Drives are accessed and referred typically with "sys:" and
"vol1:" etc, whatever the name of the volume is. An example
of "working" to "broken" would be the difference in tomcat
4.1.19 to 4.1.20. If the xercesImpl.jar and
xmlParserAPIs.jar were replaced in 4.1.20 with the ones from
4.1.19, the "marshalling" errors would go away, and
applications such as Jetspeed and Cocoon will work properly.

I would be happy to work with any developer who is willing
to make a permanant commit on this issue so I don't have to
keep going back to the indivual groups.

Providing Previous Bug DB information:
http://nagoya.apache.org/bugzilla/showvotes.cgi?bug_id=3372
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14917


t's me again. I haven't tried out recently because we
switched over on a Linux
machine. I'll look for the log if i'm on the Novell Server
again. But the
investigation we made points to this piece of
CocoonServlet.java:

if(path.indexOf(':')>1)
url = new URL(path);
else
url = (new File(path)).toURL();

In the RC1 it's row no. 642.
If Novell comes with it's path: "SYS:\tomcat\cocoon" it will
certainly go the
URL-way!

So far...

Vadim;
Hello... can you tell me how you fixed this problem on
Cocoon so I can tell the
jetspeed folks.



Yes, sure... Code snippet below does the trick:

try {
if (path.indexOf(':') > 1) {
this.servletContextURL = new URL(path);
} else {
this.servletContextURL = new File(path).toURL();
}
} catch (java.net.MalformedURLException me) {
// VG: Novell has absolute file names starting with the
// volume name which is easily more then one letter.
// Examples: sys:/apache/cocoon or sys:\apache\cocoon
try {
this.servletContextURL = new File(path).toURL();
} catch (java.net.MalformedURLException ignored) {
throw new ServletException("Unable to determine servlet context
URL.", me);
}
}

"if" is for Windows, "else" for URLs, and inside "catch"
special case for Novell.

Vadim



------- Additional Comments From Rapha?l Luta 2002-12-10
10:57 -------

The fault seems to be an error when calling Xerces:

Document d = builder.parse(file);

with file = File().getCanonicalPath().

So it seems that Xerces is failing on Netware when trying to
read
an existing canonical file path.
I guess this should really be fixed at xerces level, don't
you think ?

I will try as a workaround using an URL object instead of a
canonical
path since it seems to work for Cocoon.

Thanks for the patch.

greets

todd
http://www.wiserlabz.com 


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org