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

この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

JDK8u20のコンパイラのバグにぶち当たる

Java

いつの間にかJDK8u20がリリースされていたので更新しました。

すると、

 コンパイラで例外が発生しました(1.8.0_20)。Bug Paradeで重複がないかをご確認のうえ、Java Developer Connection (http://java.sun.com/webapps/bugreport)でbugの登録をお願いいたします。レポートには、
そのプログラムと下記の診断内容を含めてください。ご協力ありがとうございます。
[javac] java.lang.AssertionError: isSubClass M
[javac]     at com.sun.tools.javac.code.Symbol.isSubClass(Symbol.java:447)
[javac]     at com.sun.tools.javac.code.Symbol.isMemberOf(Symbol.java:456)
[javac]     at com.sun.tools.javac.code.Symbol$MethodSymbol.overrides(Symbol.java:1469)
[javac]     at com.sun.tools.javac.code.Types$ImplementationCache.implementationInternal(Types.java:2671)
[javac]     at com.sun.tools.javac.code.Types$ImplementationCache.get(Types.java:2653)
[javac]     at com.sun.tools.javac.code.Types.implementation(Types.java:2682)
[javac]     at com.sun.tools.javac.code.Symbol$MethodSymbol.implementation(Symbol.java:1529)
[javac]     at com.sun.tools.javac.code.Symbol$MethodSymbol.implementation(Symbol.java:1518)
[javac]     at com.sun.tools.javac.comp.Resolve.notOverriddenIn(Resolve.java:416)
[javac]     at com.sun.tools.javac.comp.Resolve.isAccessible(Resolve.java:402)
[javac]     at com.sun.tools.javac.comp.Resolve.isAccessible(Resolve.java:362)
[javac]     at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1448)
[javac]     at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1618)
[javac]     at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1710)
[javac]     at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1662)
[javac]     at com.sun.tools.javac.comp.DeferredAttr$DeferredChecker$2.lookup(DeferredAttr.java:1325)
[javac]     at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3325)
[javac]     at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3310)
[javac]     at com.sun.tools.javac.comp.DeferredAttr$DeferredChecker.quicklyResolveMethod(DeferredAttr.java:1333)
[javac]     at com.sun.tools.javac.comp.DeferredAttr$DeferredChecker.visitApply(DeferredAttr.java:1223)
[javac]     at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
[javac]     at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[javac]     at com.sun.tools.javac.comp.DeferredAttr$FilterScanner.scan(DeferredAttr.java:901)
[javac]     at com.sun.tools.javac.comp.DeferredAttr.isDeferred(DeferredAttr.java:1088)
[javac]     at com.sun.tools.javac.comp.Attr.attribArgs(Attr.java:701)
[javac]     at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1834)
[javac]     at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1465)
               ...

あら、そうですか。


協力したいのは山々なのですが、この情報だけでは何処が悪いのかサッパリ。。。
どこかの箇所で型推論に失敗してるっぽい、というところまでは何となく分かるのですが。


JDK8u20はVMクラッシュするらしいという情報も見かけたので、
ひとまずJDK8u11へ戻すことにしました。