You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Jan-Willem Gmelig Meyling (JIRA)" <ji...@apache.org> on 2017/11/20 16:59:00 UTC

[jira] [Updated] (MJAVADOC-501) Plugin breaks source code that contains anonymous instantiation of inner class

     [ https://issues.apache.org/jira/browse/MJAVADOC-501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan-Willem Gmelig Meyling updated MJAVADOC-501:
-----------------------------------------------
    Description: 
I have a very weird case where the plugin alters my generated sources in such a way that the code doesn't even compile anymore, and then fails to generate a Javadoc report. Not sure if this is caused by the plugin or Javadoc itself.

My code is as follows:


*A.java*
{code:java}
public class A {
     @AllArgsConstructor public class B {
             String s;
     }
}
{code}

*C.java*

{code:java}
public class C {
     @Value public class D {
            A a;

            public B test(String s) {
                   return a.new B(s) {} // This compiles perfectly fine
            }
     }
}
{code}

The problem is within *C.java*, where its contents get replaced with

{code:java}
public class C {
     @Value public class D {
            A a;

            public B test(String s) {
                   return new B(a<*nullchk*>, s) {} // This is the part that won't compile
            }
     }
}
{code}

Which its somewhat similar to the underlying bytecode but certainly not correct code! I am also quite surprised that the plugin seems to alter my generated source code files.



  was:
I have a very weird case where the plugin alters my generated sources in such a way that the code doesn't even compile anymore, and then fails to generate a Javadoc report. Not sure if this is caused by the plugin or Javadoc itself.

My code is as follows:


*A.java*
{code:java}
public class A {
     @AllArgsConstructor public class B {
             String s;
     }
}
{code}

*C.java*

{code:java}
public class C {
     @Value public class D {
            A a;

            public B test(String s) {
                   return a.new B(s) {} // This is the part that won't compile
            }
     }
}
{code}

The problem is within *C.java*, where its contents get replaced with

{code:java}
public class C {
     @Value public class D {
            A a;

            public B test(String s) {
                   return new B(a<*nullchk*>, s) {} // This is the part that won't compile
            }
     }
}
{code}

Which its somewhat similar to the underlying bytecode but certainly not correct code!




> Plugin breaks source code that contains anonymous instantiation of inner class
> ------------------------------------------------------------------------------
>
>                 Key: MJAVADOC-501
>                 URL: https://issues.apache.org/jira/browse/MJAVADOC-501
>             Project: Maven Javadoc Plugin
>          Issue Type: Bug
>          Components: javadoc
>    Affects Versions: 2.10.4
>         Environment: Maven home: /usr/local/Cellar/maven/3.5.0/libexec
> Java version: 1.8.0_131, vendor: Oracle Corporation
> Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "10.13.1", arch: "x86_64", family: "mac"
>            Reporter: Jan-Willem Gmelig Meyling
>            Priority: Minor
>
> I have a very weird case where the plugin alters my generated sources in such a way that the code doesn't even compile anymore, and then fails to generate a Javadoc report. Not sure if this is caused by the plugin or Javadoc itself.
> My code is as follows:
> *A.java*
> {code:java}
> public class A {
>      @AllArgsConstructor public class B {
>              String s;
>      }
> }
> {code}
> *C.java*
> {code:java}
> public class C {
>      @Value public class D {
>             A a;
>             public B test(String s) {
>                    return a.new B(s) {} // This compiles perfectly fine
>             }
>      }
> }
> {code}
> The problem is within *C.java*, where its contents get replaced with
> {code:java}
> public class C {
>      @Value public class D {
>             A a;
>             public B test(String s) {
>                    return new B(a<*nullchk*>, s) {} // This is the part that won't compile
>             }
>      }
> }
> {code}
> Which its somewhat similar to the underlying bytecode but certainly not correct code! I am also quite surprised that the plugin seems to alter my generated source code files.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)