Community
Participate
Working Groups
In some applications (such as director) a local repository can be specified relatively (ie file:../repo) and the repository manager is happy to load the location. Unfortunately if it contains an artifact repository if p2 attempts to transfer a file from that repository it fails. In Mapper#doReplacement() the platform URIUtil.fromString is called which strips the scheme from relative URIs and the result is eventually passed to the transfer layer which doesn't have a provider for a NULL scheme. If the scheme isn't removed then ECF is able to transfer the file from the relative URI. Another possibility might be to determine the absolute path of the repository prior to determining the location of an artifact. Interestingly relative paths which refer to a zipped repository work (ie, jar:file../path.zip!/)
Created attachment 169394 [details] Handle a repository specified with a relative path When the scheme is NULL and the repository location has a file scheme resolve the artifact path against the System.property("user.dir")
Patch reviewed and released in 3.6.x and HEAD.
There was a problem with tagging HEAD so this fix won't appear in integration builds until the first build after 3.7 M2.