Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-445

ResolverUtil cannot find packages in file URLs which include the '+' character

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0-beta9
    • 2.0-rc1, 2.0
    • Core
    • None
    • Debian Squeeze and Gentoo
      Java 7u25

    Description

      I work on an application whose version number includes a '+' character which becomes part of the filename for the jars created in the build process. This application uses several custom log4j2 plugins contained in the jar which are discovered via the packages tag in the xml Configuration. We also generate a plugin map using the exec-maven-plugin command documented in the Extending log4j section of the log4j2 documentation. This command prints the following during the build:
      ERROR StatusLogger Could not search jar file '/src/program-1.2.3 build127/util/target/util-1.2.3 build127.jar' for classes matching criteria: annotated with @Plugin file not found
      The actual path to the jar is '/src/program-1.2.3+build127/util/target/util-1.2.3+build127.jar'

      I examined the source for ResolverUtil and in the method findInPackage (line 225), URLDecoder.decode is called unilaterally even for file: URLs. The javadoc for this class says the character + is converted to space, which is inappropriate for a file: URL.

      Attachments

        1. resolver-util-file-with-plus.patch
          1 kB
          Anthony Baldocchi
        2. resolver-util-jar-file-path-with-plus.patch
          1 kB
          Anthony Baldocchi

        Activity

          People

            rpopma Remko Popma
            abaldocchi Anthony Baldocchi
            Votes:
            4 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 1h
                1h
                Remaining:
                Remaining Estimate - 1h
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified