【发布时间】:2018-08-15 22:05:28
【问题描述】:
当尝试在我的 gradle 构建中执行 javadoc 任务时,会打印出以下消息(以及我可以根据要求提供的堆栈跟踪):
javadoc: error - An internal exception has occurred.
(com.sun.tools.javac.code.ClassFinder$BadClassFile: bad class file: /home/vtcakavsmoace/IdeaProjects/DiscordSRV2-Core/build/classes/java/main/com/discordsrv/core/auth/PlayerUserAuthenticator$1$1.class
bad enclosing class for com.discordsrv.core.auth.PlayerUserAuthenticator$1$1: com.discordsrv.core.auth.PlayerUserAuthenticator$1
Please remove or make sure it appears in the correct subdirectory of the classpath.)
Please file a bug against the javadoc tool via the Java bug reporting page
(http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
com.sun.tools.javac.code.ClassFinder$BadClassFile: bad class file: /home/vtcakavsmoace/IdeaProjects/DiscordSRV2-Core/build/classes/java/main/com/discordsrv/core/auth/PlayerUserAuthenticator$1$1.class
bad enclosing class for com.discordsrv.core.auth.PlayerUserAuthenticator$1$1: com.discordsrv.core.auth.PlayerUserAuthenticator$1
Please remove or make sure it appears in the correct subdirectory of the classpath.
javadoc 似乎试图记录匿名内部类的匿名内部类。
在构建文件夹中进一步检查后,您会发现该匿名类根本不存在:
这是文件中唯一包含匿名类的方法(为清楚起见,已简化):
public void doSomething() {
map.forEach((key, value) -> key.doSomething(response -> {
invokeWithCallback(value, var, new FutureCallback<Boolean>() {
@Override
public void onSuccess(final @Nullable Boolean result) {
...
new Pair<Key, Value>() {
...
}
...
}
@Override
public void onFailure(final @Nonnull Throwable t) {
...
}
});
}
}));
}
我应该如何处理以确保 javadoc 任务可以完成?
编辑:
做了更多的探索;删除内部匿名类允许 javadoc 任务完成,所以这个匿名实例似乎是问题所在。
【问题讨论】:
-
不将此添加到问题中,因为我不想有“plz fix meh codez”问题,但我想将完整的错误与所有来源联系起来:ci.scarsz.me/job/DiscordSRV2-Core/138/console跨度>
标签: java gradle javadoc java-10