Maven Compiler Plugin
  1. Maven Compiler Plugin
  2. MCOMPILER-71

javac compilation error for package-info.java containing package annotation

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.0.2
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      Windows XP SP2
      JDK 1.5.0_15

      Description

      The package-info.java files can not be compiled in Maven 2 if the 2.0.2 maven-compiler-plugin is used. package-info.java files can be compiled by earlier versions of the maven-compiler-plugin (I have tried 2.0 and 2.0.1). Newer snapshot versions does not work also and it fails in the same error (I have tried version 2.1-snapshot).

      This problem can be caused by an unusual behavior of the javac from jdk 1.5. This behavior is as follows:
      You can not use '/' file separator during compiling package-info.java (for instance "javac sk/forro/package-info.java"). You must use '\' separator (for instance "javac sk\forro\package-info.java"). If you use the '/' separator you get the the compilation error reported by this bug (package annotations should be in file package-info.java). This is javac 'feature' has been removed in jdk 6 and in jdk 6 you can use either '/' or '\' - it does not matter.

      It looks like the maven-compiler-plugin or one of its components (I mean plexus-x artefacts used by maven-compiler-plugin) uses '/' instead of the '\' in the MS Windows environment.

      I have attached a log file of an unsuccessful build (generated by mvn install -X)

      A possible workaround to solve this problem temporarily:
      The compilation successes if I use either an older version of maven-compiler-plugin or jdk 6 or do not use package-info.java files at all.

        Activity

        Hide
        Michael Osipov added a comment -

        Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.

        Assignee, if you think you can fix this bug anytime soon, please reopen and proceed appropriately.

        Show
        Michael Osipov added a comment - Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out. Assignee, if you think you can fix this bug anytime soon, please reopen and proceed appropriately.
        Hide
        Luca De Petrillo added a comment -

        FYI: Using jdk 1.5.0_22, package-info.java files are compiled correctly.

        I don't know exactly from what jdk version it started working, but I tried also with jdk 1.5.0_16 and seems to not works.

        Show
        Luca De Petrillo added a comment - FYI: Using jdk 1.5.0_22, package-info.java files are compiled correctly. I don't know exactly from what jdk version it started working, but I tried also with jdk 1.5.0_16 and seems to not works.
        Hide
        John Casey added a comment - - edited

        Okay, had to roll that change back. That wasn't the best way to go about things; it fails miserably.

        FWIW, the failed commit is revId: 8627

        http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=8626&r2=8627

        Show
        John Casey added a comment - - edited Okay, had to roll that change back. That wasn't the best way to go about things; it fails miserably. FWIW, the failed commit is revId: 8627 http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=8626&r2=8627
        Hide
        John Casey added a comment -

        I think I've got the offending lines fixed in 2.2-SNAPSHOT (or rather, in plexus-compiler-javac-1.7: http://svn.codehaus.org/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java).

        Can someone please take a look to make sure? Even better: if you have a test case, and can specify where it will fail (for instance, does it fail on linux?) that would be great to include.

        Show
        John Casey added a comment - I think I've got the offending lines fixed in 2.2-SNAPSHOT (or rather, in plexus-compiler-javac-1.7: http://svn.codehaus.org/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java ). Can someone please take a look to make sure? Even better: if you have a test case, and can specify where it will fail (for instance, does it fail on linux?) that would be great to include.
        Hide
        Ivan Bogouchev added a comment -

        We experience the same problem and it seems this is a bug in javac 1.5 :

        http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196

        Show
        Ivan Bogouchev added a comment - We experience the same problem and it seems this is a bug in javac 1.5 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196
        Hide
        Stephen Connolly added a comment -

        line 622 of the above diff is one of the offending lines

        Show
        Stephen Connolly added a comment - line 622 of the above diff is one of the offending lines
        Show
        Stephen Connolly added a comment - At least when fork is true, this issue was introduced in r5396 of plexus http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=5395&r2=5396
        Hide
        Justin Edelson added a comment -

        package-info.java is not just for javadoc.

        Show
        Justin Edelson added a comment - package-info.java is not just for javadoc.
        Hide
        Rishabh Chandra added a comment -

        I have faced this issue myself. I tried both 2.0 and 2.0.1 and they did not work.
        Then i used the excludes and got the code to compile. As the package-info file is only for javadoc I just ignored it. This is the only solution i could get to work.
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
        <fork>true</fork>
        <meminitial>128m</meminitial>
        <maxmem>512m</maxmem>
        <source>1.5</source>
        <target>1.5</target>
        <excludes>
        <exclude>**/package-info.java</exclude>
        </excludes>
        </configuration>
        </plugin>

        Show
        Rishabh Chandra added a comment - I have faced this issue myself. I tried both 2.0 and 2.0.1 and they did not work. Then i used the excludes and got the code to compile. As the package-info file is only for javadoc I just ignored it. This is the only solution i could get to work. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <meminitial>128m</meminitial> <maxmem>512m</maxmem> <source>1.5</source> <target>1.5</target> <excludes> <exclude>**/package-info.java</exclude> </excludes> </configuration> </plugin>

          People

          • Assignee:
            John Casey
            Reporter:
            Gabriel Forro
          • Votes:
            14 Vote for this issue
            Watchers:
            13 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development