0
头像

断言错误:来自 Swing 线程的 getDocumentByURN()

我们的一位 Geneious 用户反复报告 Genious 崩溃。Geneious 并没有消失,但他收到一个错误对话框,允许他向 Biomatters 报告崩溃。之后他可能会也可能不会继续工作。他说他不能再做“另存为”了。

崩溃发生在各种各样的情况/操作中,但是当我研究崩溃日志时,它们总是由 AssertionError 引起的:

java.lang.AssertionError: 不应从 Swing 线程调用 getDocumentByURN() - 它可能会为共享数据库执行网络 I/O

不幸的是,我无法从 te 日志中判断错误是发生在原生 Geneious 插件中,还是发生在我们自己构建的插件中(堆栈跟踪并没有那么远)。如果是后者,则必须是间接方式,因为我们的代码从不直接调用 getDocumentByURN。

我们仍然使用 Geneious 8.1.8。其他用户似乎没有这个问题。

以下是其中一个崩溃日志的开头:

 

Sequence View 8.1.8 异常发生 2018-05-29 10:45:47

事件序列号:1
事件年龄:当前的
应用名称:天才
应用版本:8.1.8
applicationPlatform:Windows 7 (amd64)
应用程序构建日期:2015-11-24 11:06
版本:1.8.0_31(64 位)
用户名:stokvis
堆栈分析:序列视图 8.1.8
内存使用情况:364 / 3038 / 8073 MB [上次 GC 后:  堆总:237/3038 Par Eden Space:0/266 Par Survivor Space:1/33 CMS Old Gen:235/2739]
数据网络驱动器:假
数据目录:C:\Temp\Geneious_data_Stokvis4
线:线程[AWT-EventQueue-0,6,main]
异常消息:不应从 Swing 线程调用 getDocumentByURN() - 它可能为assigner.isLocalURN=false urn=urn:local:stokvis:mk-922yhlj 的共享数据库执行网络I/O

堆栈跟踪:
java.lang.AssertionError
在 com.biomatters.geneious.publicapi.documents.DocumentUtilitiesImplementation.a(DocumentUtilitiesImplementation.java:110)
在 com.biomatters.geneious.publicapi.documents.DocumentUtilitiesImplementation.getDocumentByURN(DocumentUtilitiesImplementation.java:52)
在 com.biomatters.geneious.publicapi.documents.DocumentUtilities.getDocumentByURN(DocumentUtilities.java:252)

信息管理

1条评论

0
头像

嗨,爱丽丝,

Geneious 中通常不启用断言。  如果我们正在做可能导致问题的事情,我们经常在开发过程中使用它们来提醒我们内部。  在这种情况下,用户界面将冻结用户,直到加载文档。

查看他们的 vmoptions 文件,看看他们是否有“-ea”。  如果他们这样做,那么您可以将其删除,问题就会消失。

干杯,
马修

马修·张 0 票
评论动作 永久链接