Uploaded image for project: 'Maven-backport175'
  1. Maven-backport175
  2. MAVENBACKPORT-2

メソッドをオーバーライドしない場合でもバイトコードにメソッド情報が埋め込まれてしまう

    Details

    • Type: Task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 0.3.3
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      backport175-1.0

      Description

      backport175-1.0のAnnotationCTaskでは、サブクラスでメソッドを
      実装しない場合でもサブクラスのバイトコードに継承親のメソッド
      情報を埋め込むようで、下記のassertはfailしてしまう。

      public void testGetMethod() throws Exception {
          final Method ifsMethod = Foo.class.getMethod("baaaar", null);
          final Method abstractClassMethod = FooImpl.class.getMethod("baaaar",
              null);
          assertEquals(ifsMethod, abstractClassMethod);
      }
      
      public static interface Foo {
          void baaaar();
      }
      
      public static abstract class FooImpl implements Foo {
      }
      

      通常(AnnotationCTaskを行わない場合)は
      親クラスのMethodオブジェクトを取得できるので、このassertはsuccessする。

        Attachments

          Activity

            People

            • Assignee:
              manhole manhole
              Reporter:
              manhole manhole
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: