ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Holmes (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IVY-1522) Ivy 2.4.0 improperly handles modules with colon (:) in version
Date Tue, 19 May 2015 18:03:59 GMT
Daniel Holmes created IVY-1522:
----------------------------------

             Summary: Ivy 2.4.0 improperly handles modules with colon (:) in version
                 Key: IVY-1522
                 URL: https://issues.apache.org/jira/browse/IVY-1522
             Project: Ivy
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.4.0
            Reporter: Daniel Holmes
            Priority: Critical


This was not an issue in 2.2.0.

I have some modules in my project which produce debian .deb files and those modules versions
include a colon (:) in the version because the version scheme was reset, so an epoch is set.

I also for this module use the extends tag, and in processing the parent location, this code
in FileUtil which is called during a FileUtil.normalize() is causing the : in the resolve
parent file name to have the : replaced with a :/.

The comment on the if seems to explain that it is trying to handle a Windows/NetWare case,
but the assumption to process any colon in the path is too broad.

   private static String[] dissect(String path) {
        char sep = File.separatorChar;
        path = path.replace('/', sep).replace('\\', sep);

        // // make sure we are dealing with an absolute path
        // if (!isAbsolutePath(path)) {
        // throw new BuildException(path + " is not an absolute path");
        // }
        String root = null;
        int colon = path.indexOf(':');
        if (colon > 0) { // && (ON_DOS || ON_NETWARE)) {

            int next = colon + 1;
            root = path.substring(0, next);
            char[] ca = path.toCharArray();
            root += sep;
            // remove the initial separator; the root has it.
            next = (ca[next] == sep) ? next + 1 : next;

            StringBuffer sbPath = new StringBuffer();
            // Eliminate consecutive slashes after the drive spec:
            for (int i = next; i < ca.length; i++) {
                if (ca[i] != sep || ca[i - 1] != sep) {
                    sbPath.append(ca[i]);
                }
            }
            path = sbPath.toString();



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message