微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我下载了源后在堆栈跟踪中看到未知源?

如何解决为什么我下载了源后在堆栈跟踪中看到未知源?

我想深入了解正在运行单元测试的异常的详细信息,但 HsqlDB 的堆栈跟踪部分显示未知来源。我正在使用 Maven,并且下载了源代码和文档,我可以看到它们在 IDE 中正确定义。

有什么想法为什么我仍然会看到未知来源

Caused by: org.hsqldb.HsqlException: incompatible data type in operation
at org.hsqldb.error.Error.error(UnkNown Source)
at org.hsqldb.error.Error.error(UnkNown Source)
at org.hsqldb.NumberSequence.setDefaults(UnkNown Source)
at org.hsqldb.NumberSequence.<init>(UnkNown Source)
at org.hsqldb.ParserTable.readColumnDeFinitionorNull(UnkNown Source)
at org.hsqldb.ParserTable.readTableContentsSource(UnkNown Source)
at org.hsqldb.ParserTable.compileCreateTableBody(UnkNown Source)
at org.hsqldb.ParserTable.compileCreateTable(UnkNown Source)
at org.hsqldb.ParserDDL.compileCreate(UnkNown Source)
at org.hsqldb.ParserCommand.compilePart(UnkNown Source)
at org.hsqldb.ParserCommand.compileStatements(UnkNown Source)
at org.hsqldb.Session.executeDirectStatement(UnkNown Source)
at org.hsqldb.Session.execute(UnkNown Source)

解决方法

Java 库可以使用包含源文件和行号信息的调试信息进行编译。许多库都是用这些信息编译的,但显然 HSQLDB 是在没有这些信息的情况下编译的(可能是因为这会导致类文件稍微小一些)。

此信息的可用性与您是否下载源代码无关,这仅取决于库 JAR 中的类是如何编译的。

查看 Maven 中专门用于 HSQLDB 的文件,似乎在您的 Maven 依赖项中使用 <classifier>debug</classifier> 很可能使用包含此调试信息的库版本。不过,我还没有验证这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。