読者です 読者をやめる 読者になる 読者になる

メモ:Java8 + WildFly8 で static method を 実装した interface で CDI エラーが出る の続き

メモ:Java8 + WildFly8 で static method を 実装した interface で CDI エラーが出る - お だ のスペース の続き。

最新の WELD-SE (2.2.0.SP1) でも発生したので、WildFly というよりは、WELD の問題のようです。
というわけで WELD のソースを見てみると怪しいところを発見しました。
core/impl/src/main/java/org/jboss/weld/bean/proxy/ProxyFactory.java at master · weld/core · GitHub の addMethodsFromClass のこの部分

for (Class<?> c : additionalInterfaces) {
  for (Method method : c.getMethods()) {
    try {
      MethodInformation methodInfo = new RuntimeMethodInformation(method);
      ClassMethod classMethod = proxyClassType.addMethod(method);
      createSpecialMethodBody(classMethod, methodInfo, staticConstructor);
      BeanLogger.LOG.addingMethodToProxy(method);
    } catch (DuplicateMemberException e) {
    }
  }
}

ソース落としてビルドするガッツが無いので試していませんが、ここ static method を省くようにしたらいけるんじゃないかなー?

2014/05/01 追記:
次のバージョンでは直ってそうですね。
[WELD-1664] ProxyFactory fails with Java 8 interface static method - JBoss Issue Tracker