JDK6 javadoc处理注解bug

【声明】本文为AdamsLee原创,转载请注明出自围炉网并保留本文有效链接:JDK6 javadoc处理注解bug, 转载请保留本声明!

在我的 https://github.com/WinRoad-NET/wrdoclet 项目中,一开始一直是在JDK7上开发的。因为公司一直用的是JDK6,最近想完善一下,看看是否能够支持JDK6。却发现一直无法编译通过,绕过了各种兼容问题后,最后还是卡在了下面这个异常:

java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc
at com.sun.tools.javadoc.AnnotationDescImpl.annotationType(AnnotationDescImpl.java:46)
at com.sun.tools.doclets.formats.html.HtmlDocletWriter.getAnnotations(HtmlDocletWriter.java:1739)

反复排查代码都没有发现任何问题,网上搜索得到的答案大部分说是少引用了其它什么jar包,尝试多次也都解决不了问题。非常郁闷,后来搁置问题几天后,实在不服,终于搜索到了真实原因,原来是踩到了JDK的bug,真是欲哭无泪啊。http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6709246

因为项目需要分析源码的注解,而这个bug所涉及功能太过基本,实在想不出办法绕过去。因此对于支持JDK6的想法只好放弃了:(

此条目发表在未分类分类目录,贴了, 标签。将固定链接加入收藏夹。