cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Heinicke (JIRA) <>
Subject [jira] Commented: (COCOON-2022) broken URI handling in ZipSource
Date Sat, 17 Mar 2007 15:34:09 GMT


Jörg Heinicke commented on COCOON-2022:

Thanks for investigating, Jorg.

Why not changing o.a.excalibur.source.impl.FileSource to add the additional slash? It that's
not an option for any reason I also don't care that much about changing the test case. (Though
I prefer fixing an error where it occurs or as early as possible and not forcing everyone
using the code to cope with it.)

> broken URI handling in ZipSource
> --------------------------------
>                 Key: COCOON-2022
>                 URL:
>             Project: Cocoon
>          Issue Type: Bug
>          Components: * Cocoon Core
>    Affects Versions: 2.1.10
>            Reporter: Jörg Heinicke
>         Assigned To: Jörg Heinicke
>            Priority: Minor
> On behalf of Leonid Geller:
> 1. Bug in org.apache.cocoon.components.source.impl.ZipSourceFactory, on this line:
>         // Get protocol. Protocol is configurable via cocoon.xconf
>         final String protocol = location.substring(0, protocolEnd - 1);
> Obviously it should be location.substring(0, protocolEnd). This is what causes zip to
be truncated to "zi".
> 2. When using a SYSTEM identifier with relative DTD path, the XML parser will look for
the file relative to the URI of the zipped source,!/source.xml which is obviously
going to fail.
> Here, the solution is to have the source implementation class (in this case org.apache.cocoon.components.source.impl.ZipSource)
to change getURI method to return source.xml based on location, w/o the zip protocol.
Current implementation:
> 	return this.protocol + this.archive.getURI() + "!/" + this.filePath;
> is not going to work. Something like this will:
>     	int iZipIdx = this.archive.getURI().lastIndexOf("/");
> 	if (iZipIdx < 0) iZipIdx = 0;
>     	return this.archive.getURI().substring(0,iZipIdx)+"/"+ this.filePath;

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message