下载源代码后,为什么我会在堆栈跟踪中看到未知源?

spr*_*boy 2 java hsqldb maven

我想深入了解正在运行单元测试的异常的详细信息,但 HSQLDB 的堆栈跟踪部分显示为Unknown Source。我正在使用 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)
Run Code Online (Sandbox Code Playgroud)

Mar*_*eel 5

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

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

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