重命名 plsql 包后 Oracle SQL Developer 冻结
Posted
技术标签:
【中文标题】重命名 plsql 包后 Oracle SQL Developer 冻结【英文标题】:Oracle SQL Developer freezes after renaming plsql package 【发布时间】:2019-01-08 15:57:20 【问题描述】:如果我重命名包然后编译包,SQL-Developer 会冻结。这是一个已知问题吗/是否有针对此行为的解决方案?
在早期版本(例如 4.x)中,创建了一个新包。
添加或删除函数和程序正在运行,但未更改包的名称。我在sqldeveloper被冻结后做了一个截图-我必须用windows taskmanager杀死它。
新包创建完成,我启动新的sqldeveloper后可以编辑它。
谢谢
SQL Developer 版本 18.3.0.277 Oracle 数据库 12c
完整的 jstack 输出:https://pastebin.com/VXZb2rSn
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Found 1 deadlock.
【问题讨论】:
问题依然存在(V19.1.0) 【参考方案1】:打开一个包(规范!)
create or replace PACKAGE PACKAGE_SO AS
/* TODO enter package declarations (types, exceptions, methods etc) here */
END PACKAGE_SO;
获取代码,“重命名”包。
create or replace PACKAGE PACKAGE_SO_NEW_NAME AS
/* TODO enter package declarations (types, exceptions, methods etc) here */
END PACKAGE_SO_NEW_NAME;
编译。
我得到一个弹出对话框,表明一个新的包已经创建,在短暂的停顿后,我得到一个新的代码编辑器。
我的第一个包裹不再打开。
我需要刷新树上的 Package 项目才能看到新的出现。
这是版本 18.3,使用 Java 8,在 Mac 上针对 18c (12.2) 数据库。
现在,为什么它不适合你?
似乎底层框架代码正试图在非 UI 线程上执行用户界面工作,但它被卡住了。
不确定是什么原因导致您出现这种情况,而不是我,但这将是一个错误。
【讨论】:
我在 Windows、不同的机器、不同的数据库上工作,但总是相同的行为。如果我重命名现有的包(规范或正文),开发人员会崩溃。 @systemlos 如果您确实遇到了崩溃,请分享 java 堆栈转储。如果您只是让应用程序冻结(而不是崩溃),请使用您的 java home bin 目录中的 jstacke.exe 并附加到 sql 开发人员进程 ID 以获取一个 - 并在此处分享 你是对的,这是一个冻结。发布了 jstack 输出 @systemlos 应该还有很多,这不是完整的堆栈,只有 2 个线程值得 不,我没有取消停靠代码编辑器。发布了 pastebin 链接。以上是关于重命名 plsql 包后 Oracle SQL Developer 冻结的主要内容,如果未能解决你的问题,请参考以下文章